Tính Sản Lượng Hàng Tháng Bán Theo Mã Hàng

Bảng dữ liệu là thời gian bán hàng của từng sản phẩm và tổng số lượng bán được trong khoảng thời gian đó. Bạn cần phân bổ số lượng đó cho các tháng, nếu tháng nào trống (như ví dụ tháng 2/2024 không có sản phẩm nào bán, nhưng vẫn cần xuất hiện). 

Ví dụ: Dòng 3 từ ngày 12/03/2024 đến ngày 09/08/2024 có tổng số 151 ngày và số lượng 3246. Nên mỗi ngày số lượng sẽ là 3246/151=21.496. Bạn cần tính trong một ngày số lượng bao nhiêu, sau đó nhân số ngày trong tháng. (Làm tròn chỉ lấy 1 số thập phân).

Link: Onedrive
Số lượng tính theo ngày thực tế mỗi tháng

Công thức:
1.=LET(a,A2:A17,b,B2:B17,u,SEQUENCE(,B17-A2+1,A2),f,LAMBDA(x,TOCOL(IFS((u>=a)*(u<=b),x),3)),c,UNIQUE(TEXT(u,"mmm-yy"),1),d,TEXT(f(u),"mmm-yy"),e,f(D2:D17/(b-a+1)),m,f(C2:C17),REDUCE(HSTACK(C1,c),SORT(UNIQUE(m)),LAMBDA(x,v,IFNA(VSTACK(x,HSTACK(v,ROUND(VLOOKUP(c,GROUPBY(d,e,SUM,,,,m=v),2,),1))),))))

2.=LET(z,SORT(A2:D17,3),dd,TAKE(z,,2),c,INDEX(z,,3),st,EOMONTH(MIN(dd),SEQUENCE(,ROUNDUP(YEARFRAC(MIN(dd),MAX(dd))*12,))-2)+1,HSTACK(VSTACK(C1,UNIQUE(c)),REDUCE(TEXT(st,"mmm-yy"),SEQUENCE(ROWS(z)),LAMBDA(x,n,LET(f,INDEX(z,n,1),t,INDEX(z,n,2)+1,m,MAP(st,LAMBDA(m,ROUND(MAX(,MIN(EDATE(m,1),t)-MAX(m,f))*INDEX(z,n,4)/(t-f),1))),IF(IF(n>1,INDEX(z,n,3)=INDEX(z,n-1,3)),VSTACK(DROP(x,-1),TAKE(x,-1)+m),VSTACK(x,m)))))))

3.=LET(a,A2:A17,b,B2:B17,c,C2:C17,d,D2:D17,e,b-a,di,REDUCE({0,0,0},SEQUENCE(ROWS(a)),LAMBDA(x,n,LET(f,INDEX(a,n,1),t,INDEX(b,n,1),i,INDEX(c,n),da,INDEX(d,n)/(t-f+1),VSTACK(x,IFNA(HSTACK(TEXT(SEQUENCE(t-f+1,,f),"mmm-yy"),i,da),HSTACK(0,i,da)))))),my,TEXT(EOMONTH(MIN(a),SEQUENCE(,ROUNDUP(YEARFRAC(MIN(a),MAX(b))*12,))-1),"mmm-yy"),it,SORT(UNIQUE(c)),VSTACK(HSTACK(C1,my),HSTACK(it,MAP(IFNA(my,it),IFNA(it,my),LAMBDA(x,y,ROUND(SUM((x=TAKE(di,,1))*(y=INDEX(di,,2))*DROP(di,,2)),1))))))

4.=LET(k,C2:C17,u,SORT(UNIQUE(k)),c,A2:B17,a,MIN(c),w,TEXT(SEQUENCE(,DATEDIF(a,MAX(c),"M")+1,a,31),"mmm-yy"),b,DROP(REDUCE(0,SEQUENCE(ROWS(c)),LAMBDA(q,w,VSTACK(q,LET(o,INDEX(c,w,),m,MIN(o),a,TEXT(SEQUENCE(MAX(o)-m+1,,m),"mmm-yy"),DROP(REDUCE(0,UNIQUE(a),LAMBDA(e,v,VSTACK(e,HSTACK(INDEX(k,w),v,SUM((a=v)*(INDEX(D2:D17,w)/ROWS(a))))))),1))))),1),VSTACK(HSTACK(C1,w),HSTACK(u,MAKEARRAY(ROWS(u),COUNTA(w),LAMBDA(r,c,ROUND(SUM(INDEX(b,,3)*(INDEX(w,c)=INDEX(b,,2))*(INDEX(b,,1)=INDEX(u,r))),1))))))

Đăng nhận xét (0)
Mới hơn Cũ hơn