Tính tổng Target và Actual của từng máy. Cùng với tổng chênh lệch Target - Actual và Total.
Link: Onedrive
![]() |
| Tổng target và actual và tổng chênh lệch |
Công thức:
1.=GROUPBY(SCAN(,A1:A25,LAMBDA(x,v,IF(v>0,v,x))),HSTACK(VSTACK("Total "&C1:D1,C2:D25),IFERROR(C1:C25-D1:D25,"Deviation")),SUM,3)
2.=LET(a,SCAN(,A2:A25,LAMBDA(x,v,IF(v>0,v,x))),b,REDUCE(F1:I1,UNIQUE(a),LAMBDA(x,v,VSTACK(x,HSTACK(v,BYCOL(FILTER(HSTACK(C2:D25,C2:C25-D2:D25),a=v),SUM))))),VSTACK(b,HSTACK("Total",BYCOL(DROP(b,,1),SUM))))
3.=LET(H,HSTACK,s,SCAN(,A2:A25,LAMBDA(a,v,IF(v>0,v,a))),g,DROP(GROUPBY(H(XMATCH(s,s),s),H(C2:D25,C2:C25-D2:D25),SUM),,1),r,VSTACK(H(A1,"Total "&C1:D1,"Deviation"),g),IF(r="","Total",r))
4.Python
df = xl("A1:D25",1)
df["Machine"]=df["Machine"].ffill()
df["Deviation"] = df["Target"] - df["Actual"]
k = (df.groupby("Machine")[["Target","Actual","Deviation"]].sum().rename(columns={"Target":"Total Target","Actual":"Total Actual"}))
k.loc["Total"] = k.sum()
k.reset_index()
