Dữ liệu gồm có data: Xuất, Nhập, Tồn được chia làm các sheet riêng biệt. Bạn cần:
- Tạo bảng báo cáo theo ngày trong tháng của data.
- Dữ liệu cần được lọc thể hiện theo từng xưởng và mã hàng.
- Gồm đầy đủ các cột Tồn đầu, Nhập, Xuất và thêm cột Tồn cuối
- Tồn cuối = Tồn đầu + Nhập - Xuất
- Và cần thêm dòng cuối cùng tổng tồn cuối theo mã hàng
- Dễ dàng biết được hiện tại tồn cuối cùng của sản phẩm là bao nhiêu.
Link: Onedrive
Tạo bảng tổng hợp, dữ liệu nằm ở nhiều sheet khác nhau.
![]() |
| Tạo báo cáo xuất nhập tồn |
Dễ dàng cập nhập khi bạn thay đổi mã hàng:
![]() |
| Dễ dàng cập nhập khi thay đổi mã hàng |
Công thức:
1.=LET(a,DROP(REDUCE(0,B4:B6,LAMBDA(x,v,VSTACK(x,IFNA(HSTACK(v,INDIRECT("'"&v&"'!A2:E3000")),v)))),1),b,TAKE(a,,1),c,DROP(IFNA(IFS({1,1;0,0},{"Ngày","Xưởng"}),DROP(PIVOTBY(CHOOSECOLS(a,6,2,6),HSTACK(XMATCH(b,B4:B6),XLOOKUP(b,B4:B6,A4:A6)),INDEX(a,,5),SUM,,2,,0,,INDEX(a,,3)=B1),1,1)),-1),d,INDEX(c,,2),e,IF(d="","",c),m,BYROW(IFERROR(DROP(e,,2)*{1,1,-1},),SUM),n,SEQUENCE(ROWS(d)),IFNA(HSTACK(e,VSTACK("Tồn cuối",DROP(IF(d="","",MMULT((d=TOROW(d))*(n>=TOROW(n)),m)),1),TAKE(SCAN(,m,SUM),-1))),EXPAND("Tổng tồn",,5,"")))
2.=LET(I,INDEX,a,DROP(REDUCE(0,B4:B6,LAMBDA(x,v,VSTACK(x,IFNA(HSTACK(v,INDIRECT("'"&v&"'!A2:E3000")),v)))),1),b,FILTER(a,TAKE(a,,-1)),c,TAKE(b,,-1),z,REDUCE(D1:I1,UNIQUE(c),LAMBDA(x,v,IFNA(VSTACK(x,LET(d,FILTER(TAKE(b,,5),I(b,,3)&c=B1&v),e,I(d,,1),m,DROP(PIVOTBY(I(d,,2),HSTACK(XMATCH(e,B4:B6),e),I(d,,5),SUM,,0,,0),2),n,DROP(m,,1),IFNA(HSTACK(I(m,,1),v,n,SCAN(,BYROW(IFERROR(n*{1,1,-1},),SUM),SUM)),v)),""),""))),VSTACK(z,HSTACK(EXPAND("Tổng tồn",,5,""),SUM(BYCOL(CHOOSECOLS(z,3,4,5),SUM)*{1,1,-1}))))

