Thống Kê Đầu Số Hạng Mục Còn Thiếu Của Từng Danh Mục

Dữ liệu là số đánh các hạng mục của các danh mục. Bạn cần thống kê các đầu số được đánh bắt đầu...đến...(dựa vào STT được đánh liên tiếp hay không). Và chèn thêm cột mà các đầu số còn thiếu của từng đầu danh mục.

Ví dụ: Với danh mục đầu, có STT 1,2,3 liên tiếp nên sẽ vào 1 nhóm. Nhóm sau sẽ chỉ có STT 8, và bị thiếu các số từ 4 đến 7 (bạn cần liệt kê chúng lại).

Bài toán giúp bạn dễ dàng kiểm tra các số đã được đánh cho các tập hồ sơ, và còn thiếu các số để dễ dàng điều chỉnh.

Link: Onedrive

Thống kê STT bị thiếu theo từng đầu mục của các danh mục

Công thức:
1.=SORTBY(REDUCE({"Danh mục","Missing","From","To"},B2:B20,LAMBDA(a,n,LET(l,INDEX(a,ROWS(a),4),d,n-1-N(l),IF((l=n-1)*(OFFSET(n,-1,-1)=OFFSET(n,,-1)),VSTACK(DROP(a,-1),HSTACK(TAKE(a,-1,3),n)),VSTACK(a,HSTACK(OFFSET(n,,-1),IF(d>0,TEXTJOIN(", ",,SEQUENCE(d,,l+1)),""),n,n)))))),{1,4,2,3})

2.=LET(q,SCAN(,B2:B20=N(+B1:B19)+1,LAMBDA(a,d,IF(d,a,a+1))),REDUCE(D1:G1,UNIQUE(q),LAMBDA(a,d,LET(e,FILTER(A2:B20,q=d),w,TAKE(e,1,1),c,MIN(e),i,TAKE(a,-1),v,MAX(i),VSTACK(a,HSTACK(w,c,MAX(e),ARRAYTOTEXT(IF((w=TAKE(a,-1,1))*(c<>MIN(i)),SEQUENCE(c-v-1,,v+1),""))))))))

3.=LET(a,A2:B20,b,TAKE(a,,1),c,TAKE(a,,-1),d,VSTACK(1,SCAN(1,(DROP(c,-1)+1<>DROP(c,1))+(DROP(b,-1)<>DROP(b,1)),LAMBDA(x,v,x+(v>0)))),e,UNIQUE(d),u,XLOOKUP(e,d,c,,,{1,-1}),VSTACK(D1:G1,HSTACK(XLOOKUP(e,d,b),u,VSTACK("",MAP(DROP(u,1,-1)-DROP(u,-1,1)-1,DROP(u,-1,1),LAMBDA(x,v,ARRAYTOTEXT(IFERROR(SEQUENCE(x,,v+1),""))))))))

4.=REDUCE(D1:G1,UNIQUE(A2:A20),LAMBDA(x,v,VSTACK(x,LET(a,FILTER(A2:B20,A2:A20=v),b,DROP(a,,1),c,b-VSTACK(99,DROP(b,-1)),DROP(GROUPBY(HSTACK(SCAN(0,c<>1,SUM),TAKE(a,,1)),HSTACK(b,b,IFERROR(MAP(c-1,b,LAMBDA(x,v,ARRAYTOTEXT(SORT(SEQUENCE(x,,v-1,-1))))),"")),HSTACK(MIN,MAX,SINGLE),,0),1,1)))))
Đăng nhận xét (0)
Mới hơn Cũ hơn