그 값이 어떻게 계산되는지 잘 모르겠습니다. 3개월 앞선 4월만 쓸 수 있는데 테스트 횟수는 8번, 고유 시리얼 번호는 6번이면 되지 않나?
매월 하나의 행만 있으므로 먼저 요약 테이블을 만든 다음 여기에서 계산을 수행하는 것이 가장 쉬울 것입니다.
죄송합니다. 1월과 2월에 대한 결과를 표시하는 것이 혼란스러울 수 있습니다.그리고 "3개월 이전"에 대해 잘 설명하지 않았습니다.이것이 의미하는 바입니다. 4월 요약 행의 경우 2월, 3월 및 4월에 실행된 모든 테스트를 계산하고 동일한 기간 동안의 모든 고유 일련 번호를 계산합니다.3월 요약 행은 비슷하지만 1월, 2월 및 3월을 사용합니다.1월 및 2월 요약에 대한 공백 또는 1월 데이터에만 기반한 1월 및 1월 및 2월 데이터에만 기반한 2월 요약에 대해 공백을 허용합니다.
요점은 일부 일련 번호가 서로 다른 달에 여러 번 테스트된다는 것입니다. 시간 프레임을 1개월로 제한하면 테스트 수 대 테스트된 고유 단위 수는 정확하지 않습니다.
이것은 확실히 이 작업을 수행하는 유일한 방법은 아니지만 가능한 옵션 중 하나입니다.
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;
);

연도가 여러 개인 경우 수정이 필요합니다.
롤링 3개월 동안 테이블을 요약하는 방법을 찾으려고 합니다.나는 '지연'과 '콜 롤링' 기능으로 다른 접근법을 시도했지만 아직 성공하지 못했습니다.어떤 충고?JMP 16을 사용하고 있습니다.
원본 데이터 예
월 | 테스트된 장치의 일련 번호 |
1월 | 1001 |
1월 | 1001 |
1월 | 1002 |
2월 | 1002 |
2월 | 1003 |
2월 | 1004 |
망치다 | 1005 |
망치다 | 1006 |
4월 | 1006 |
4월 | 1006 |
원하는 요약 데이터
월 | 테스트 횟수, 이전 3개월 | 테스트된 고유 SN 수, 이전 3개월 |
1월 | 삼 | 2 |
2월 | 6 | 4 |
망치다 | 8 | 6 |
4월 | 7 | 5 |