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)
