Tổng Hợp Thay Đổi Bảng Dữ Liệu

Dữ liệu tên và đơn hàng. Nếu tên có nhiều đơn hàng (Order No) thì số tiền cần chia đều số lượng đơn của mỗi tên.



Link: Onedrive

Tổng hợp lại bảng dữ liệu theo đơn hàng

Công thức:
1.=LET(u,REDUCE(HSTACK(B1,A1,C1),C2:C9,LAMBDA(x,v,VSTACK(x,LET(a,--TEXTSPLIT(@+B9:v,,", "),CHOOSE({1,2,3},a,@+A9:v,v/ROWS(a)))))),DROP(GROUPBY(TAKE(u,,1),DROP(u,,1),HSTACK(ARRAYTOTEXT,SUM),3,0),1))

2.=LET(o,--TEXTSPLIT(TEXTJOIN("_",,B2:B9),", ","_"),VSTACK(HSTACK(B1,A1,C1),DROP(GROUPBY(TOCOL(o,3),HSTACK(TOCOL(IFS(o,A2:A9),3),TOCOL(IFS(o,C2:C9/BYROW(o,COUNT)),3)),HSTACK(ARRAYTOTEXT,SUM),,0),1)))

3.=LET(b,B2:B9,R,ARRAYTOTEXT,a,SORT(UNIQUE(TEXTSPLIT(R(b),,", ")*1)),f,LAMBDA(h,k,MAP(a,LAMBDA(x,h(FILTER(k,REGEXTEST(b,x)))))),HSTACK(a,f(R,A2:A9),f(SUM,C2:C9/MAP(b,LAMBDA(v,ROWS(TEXTSPLIT(v,,",")))))))

4.=LET(b,B2:B9,a,--TEXTSPLIT(TEXTJOIN("/",,b),", ","/"),f,LAMBDA(v,TOCOL(IFS(a,v),3)),DROP(GROUPBY(f(a),HSTACK(f(A2:A9),f(C2:C9/MAP(b,LAMBDA(v,ROWS(TEXTSPLIT(v,,",")))))),HSTACK(ARRAYTOTEXT,SUM),,0),1))

5.=LET(H,HSTACK,a,MID(B2:B9,SEQUENCE(,9,,6),4)*1,f,LAMBDA(v,TOCOL(IFS(a,v),3)),DROP(GROUPBY(f(a),H(f(A2:A9),f(C2:C9/BYROW(a,COUNT))),H(ARRAYTOTEXT,SUM),,0),1))

6.Python (Xem trong file)
Đăng nhận xét (0)
Mới hơn Cũ hơn