anhkhang.ak1122
Thành viên mới

- Tham gia
- 24/5/23
- Bài viết
- 26
- Được thích
- 4
Có 2 cách tại I3:Em chào các bác. Các bác giúp em tính số lần xuất hàng của các đơn mà có từ 4 ngày liên tiếp xuất hàng trở lên và có số Batch loại A. Em cảm ơn.
=SUM(--(FREQUENCY(IF(($D$3:$D$50=H3)*(LEFT($E$3:$E$50,1)="A"),ROW($D$3:$D$50)),IF(($D$3:$D$50<>H3)*(LEFT($E$3:$E$50,1)<>"A"),ROW($D$3:$D$50)))>=4))
=SUMPRODUCT((LEFT($E$3:$E$50,1)="A")*(H3=$D$3:$D$50)*(COUNTIFS($D$3:$D$50,$D$3:$D$50,$E$3:$E$50,$E$3:$E$50)>=4)/(COUNTIFS($D$3:$D$50,$D$3:$D$50,$E$3:$E$50,$E$3:$E$50)))
Cách 2 chưa liên quan đến liên tiếpCó 2 cách tại I3:
- Cách 1 : ấn Ctrl+ Shift+ Enter
- Cách 2:Mã:=SUM(--(FREQUENCY(IF(($D$3:$D$50=H3)*(LEFT($E$3:$E$50,1)="A"),ROW($D$3:$D$50)),IF(($D$3:$D$50<>H3)*(LEFT($E$3:$E$50,1)<>"A"),ROW($D$3:$D$50)))>=4))
Mã:=SUMPRODUCT((LEFT($E$3:$E$50,1)="A")*(H3=$D$3:$D$50)*(COUNTIFS($D$3:$D$50,$D$3:$D$50,$E$3:$E$50,$E$3:$E$50)>=4)/(COUNTIFS($D$3:$D$50,$D$3:$D$50,$E$3:$E$50,$E$3:$E$50)))
Nhưng kết quả cũng đúng mà nhỉ ? Để test lại thêm xem nào.Cách 2 chưa liên quan đến liên tiếp
Cả hai cách đều không căn cứ vào cột ngày (cột C), nên chắc chắn sẽ bị khiếm khuyết trong công thức và ra kết quả không chính xác.Cách 2 chưa liên quan đến liên tiếp
=COUNT(1/(FREQUENCY(IF(COUNTIFS($C$3:$C$50,$C$3+ROW($1:$50)-1,$D$3:$D$50,$H3,$E$3:$E$50,"A*"),ROW($1:$50)),IF(COUNTIFS($C$3:$C$50,$C$3+ROW($1:$50)-1,$D$3:$D$50,$H3,$E$3:$E$50,"A*"),,ROW($1:$50)))>3))
Nếu đúng thế thì UDF là phương án tốt nhất.Đây có thể là bài tập, thưc tế thì 1 ngày có thể nhiều hơn 1 đơn hàng, hoặc chủ nhật nghỉ => thứ 7 , thứ 2 vẫn tính liên tiếp.
Thực ra đúng như bác nói. 1 ngày có nhiều đơn hàng, các đơn hàng thì đã được phân loại theo thị trường của các sheet rồi ạ, nhưng mục đích em chỉ cần đơn đó xuất liền nhau của các ngày thôi, không nhất thiết cần ngày liên tiếp nhau. Phòng kinh doanh họ muốn có số liệu xuất bán hàng để họ đưa ra chiến lược kinh doanh thôi ạ.Đây có thể là bài tập, thưc tế thì 1 ngày có thể nhiều hơn 1 đơn hàng, hoặc chủ nhật nghỉ => thứ 7 , thứ 2 vẫn tính liên tiếp.
Câu này hơi mơ hồ!nhưng mục đích em chỉ cần đơn đó xuất liền nhau của các ngày thôi, không nhất thiết cần ngày liên tiếp nhau
Như công ty em có nhiều thị trường xuất, mỗi thị trường sẽ có 1 số đơn nhất đinh cho các năm. Em ví dụ đây là đơn hàng cho 1 thị trường :Câu này hơi mơ hồ!
Nghĩa là mặt hàng A trong ngày 1/7 xuất 3 đơn rồi ngưng, đến mãi 10/7 (không liên tiếp) mới xuất tiếp, tổng cộng là 4, vẫn được tính ư?
Thêm nữa:
Giả sử ngày đầu xuất 3 đơn, ngày thứ hai xuất 1 đơn, như vậy TC=4, nhưng ngày liên tiếp chỉ có 2 ngày. Có tính là hàng bán chạy không?
Nếu vậy thì xem lại và test kỹ các CT phía trên.Đơn hàng A ngày 01/07/2023 xuất lô số batch là a1, ngày 03/07/2023 cũng a1. ngày 06/07/2023 xuất lô số batch là a1, 07/07/2023 xuất lô số batch là a1. Từ này 01/07 đến ngày 07/07 chỉ có đơn A xuất bán thôi. không có đơn nào khác.
Góp ý hay bạn hiền.Đây có thể là bài tập, thưc tế thì 1 ngày có thể nhiều hơn 1 đơn hàng, hoặc chủ nhật nghỉ => thứ 7 , thứ 2 vẫn tính liên tiếp.
Dựa theo lời bạn giải thích trên, thử chỉnh lại yêu cầu của bạn như sau:Như công ty em có nhiều thị trường xuất, mỗi thị trường sẽ có 1 số đơn nhất đinh cho các năm. Em ví dụ đây là đơn hàng cho 1 thị trường :
Đơn hàng A ngày 01/07/2023 xuất lô số batch là a1, ngày 03/07/2023 cũng a1. ngày 06/07/2023 xuất lô số batch là a1, 07/07/2023 xuất lô số batch là a1. Từ này 01/07 đến ngày 07/07 chỉ có đơn A xuất bán thôi. không có đơn nào khác. Chứ trong 1 đơn hàng nó nhiều sản phẩm mà. Em hiểu ý bác là bán được 3 đơn + 1 đơn. Tên đơn hàng thôi bác, chứ mỗi batch nó rất nhiều size cỡ khác nhau, nhưng chủng loại giống nhau.
=COUNT(1/(FREQUENCY(IF(COUNTIFS($C$3:$C$50,AGGREGATE(15,6,$C$3:$C$50/(MATCH($C$3:$C$50,$C$3:$C$50,)=ROW($1:$50)),ROW($1:$50)),$D$3:$D$50,$H3,$E$3:$E$50,"A*"),ROW($1:$50)),IF(COUNTIFS($C$3:$C$50,AGGREGATE(15,6,$C$3:$C$50/(MATCH($C$3:$C$50,$C$3:$C$50,)=ROW($1:$50)),ROW($1:$50)),$D$3:$D$50,$H3,$E$3:$E$50,"A*"),,ROW($1:$50)))>3))
Vâng đúng rồi ạ. Dạ cảm ơn anh rất nhiều ạ.Dựa theo lời bạn giải thích trên, thử chỉnh lại yêu cầu của bạn như sau:
Thay vì: "Tìm số lần xuất kho cho các đơn hàng >=4 ngày liên tiếp mà có số Batch loại A"
Chỉnh lại: "Tìm số lần xuất kho cho từng đơn hàng yêu cầu thống kê, có số Batch loại A, và thỏa điều kiện đơn phải được xuất trong 4 đợt xuất hàng tuần tự kế tiếp trở lên"
Như ví dụ bạn đưa thì:
- Ngày 1/7 là đợt xuất lần 1
- Ngày 3/7 là đợt xuất lần 2
- Ngày 6/7 là đợt xuất lần 3
- Ngày 7/7 là đợt xuất lần 4
....
Thứ tự tuần tự của đợt xuất hàng không bị ảnh hưởng bởi sự tuần tự của ngày tháng, và từng đợt xuất có thể xảy ra việc xuất nhiều đơn, theo nhiều batch trong cùng ngày.
Phải bạn yêu cầu vậy không?
Nếu đúng, bạn có thể dùng công thức dưới đây. Còn nếu không phải, thì tôi cũng "bótay.com", bạn nhé!
Công thức ô I3
Kết thúc bằng Ctrl +Shift +Enter, fill xuống.Mã:=COUNT(1/(FREQUENCY(IF(COUNTIFS($C$3:$C$50,AGGREGATE(15,6,$C$3:$C$50/(MATCH($C$3:$C$50,$C$3:$C$50,)=ROW($1:$50)),ROW($1:$50)),$D$3:$D$50,$H3,$E$3:$E$50,"A*"),ROW($1:$50)),IF(COUNTIFS($C$3:$C$50,AGGREGATE(15,6,$C$3:$C$50/(MATCH($C$3:$C$50,$C$3:$C$50,)=ROW($1:$50)),ROW($1:$50)),$D$3:$D$50,$H3,$E$3:$E$50,"A*"),,ROW($1:$50)))>3))
Trong file kèm tôi có chỉnh dữ liệu từ dòng 24, dựa theo ví dụ bạn giải thích trên, và lấy mã đơn 5V2306035 làm mẫu.
Thân