Ich bin mir nicht sicher, wie diese Werte berechnet werden. Wir können Apr nur verwenden, da er drei Monate davor liegt, aber sollte die Anzahl der Tests nicht 8 und die Anzahl der eindeutigen Seriennummern 6 betragen?
Wahrscheinlich ist es am einfachsten, zuerst eine Übersichtstabelle zu erstellen und dann die Berechnungen dort durchzuführen, da Sie für jeden Monat nur eine Zeile haben.
Tut mir leid, die Anzeige der Ergebnisse für Januar und Februar war wahrscheinlich verwirrend.Und ich habe „vorherige 3 Monate“ nicht sehr gut erklärt.Das meine ich: Zählen Sie für die April-Zusammenfassungszeile alle Tests, die im Februar, März und April durchgeführt wurden, und zählen Sie alle eindeutigen Seriennummern für denselben Zeitraum.Die Zusammenfassungszeile für März wäre ähnlich, aber verwenden Sie Jan, Feb und March.Ich würde entweder Leerzeichen für die Jan- und Feb-Zusammenfassung oder Jan, basierend nur auf Jan-Daten, und die Feb-Zusammenfassung, die nur auf Jan- und Feb-Daten basiert, akzeptieren.
Der entscheidende Punkt ist, dass einige Seriennummern mehrmals in verschiedenen Monaten getestet werden. Wenn ich den Zeitrahmen auf nur einen Monat beschränke, ist die Anzahl der Tests im Vergleich zur Anzahl der getesteten einzelnen Einheiten nicht korrekt.
Dies ist definitiv nicht die einzige Möglichkeit, aber eine mögliche Option
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(10),
Compress File When Saved(1),
New Column("Month",
Character,
"Nominal",
Set Values({"Jan", "Jan", "Jan", "Feb", "Feb", "Feb", "Mar", "Mar", "Apr", "Apr"})
),
New Column("Serial # of unit tested",
Numeric,
"Nominal",
Format("Best", 12),
Set Values([1001, 1001, 1002, 1002, 1003, 1004, 1005, 1006, 1006, 1006])
)
);
dt_results = New Table("Untitled 3",
Compress File When Saved(1),
New Column("Month", Character, "Nominal", Set Values({})),
New Column("# of tests, prior 3 months", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("# of unique SN tested, prior 3 months", Numeric, "Continuous", Format("Best", 12), Set Values([]))
);
//
order = {"Jan", "Feb", "Mar", "Apr"};
Summarize(dt, uniq_months = By(:Month));
For Each({cur_month}, uniq_months,
cur_month_idx = Contains(order, cur_month);
months_of_interest = If(cur_month_idx < 3,
order[1::cur_month_idx];
,
order[(cur_month_idx - 2)::cur_month_idx];
);
// number of tests is same as number of rows
rows_of_interest = dt << Get Rows Where(Contains(months_of_interest, :Month));
nr_of_tests = N Items(rows_of_interest);
// number of unique items we can get with associative array
unique_snrs = Associative Array(dt[rows_of_interest, "Serial # of unit tested"]) << get keys;
nr_of_unique = N Items(unique_snrs);
cur_month_result = Eval List({cur_month, nr_of_tests, nr_of_unique});
dt_results << Add Row(1);
dt_results[N Row(dt_results), 0] = cur_month_result;
);

Wenn Sie mehrere Jahre haben, sind Änderungen erforderlich
Ich versuche eine Möglichkeit zu finden, eine Tabelle über einen fortlaufenden Zeitraum von drei Monaten zusammenzufassen.Ich habe verschiedene Ansätze mit den Funktionen „Lag“ und „Col Rolling“ ausprobiert, hatte aber noch keinen Erfolg.Irgendein Rat?Ich verwende JMP 16
Beispielhafte Originaldaten
Monat | Seriennummer des getesteten Geräts |
Jan | 1001 |
Jan | 1001 |
Jan | 1002 |
Febr | 1002 |
Febr | 1003 |
Febr | 1004 |
Beschädigen | 1005 |
Beschädigen | 1006 |
Apr | 1006 |
Apr | 1006 |
Gewünschte zusammengefasste Daten
Monat | Anzahl der Tests, vor 3 Monaten | Anzahl der einzelnen SN getestet, vor 3 Monaten |
Jan | 3 | 2 |
Febr | 6 | 4 |
Beschädigen | 8 | 6 |
Apr | 7 | 5 |