Gộp dữ liệu những ngày cuối tháng vào tuần cuối (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Không hiểu bạn muốn gì, dữ liệu không có xét theo điều kiện nào ?
 
Không hiểu bạn muốn gì, dữ liệu không có xét theo điều kiện nào ?

Thực ra là nó nối của bài này ạ, nhưng em sợ hỏi tiếp lại sai chủ đề, nên lập topic mới ạ.
https://giaiphapexcel.com/diendan/threads/nhờ-rút-gọn-công-thức-liệt-kê-số-tuần-trong-tháng.140769/#post-905854

Ý em là muốn chia dữ liệu vào các tuần của 1 tháng theo nguyên tắc:
Mã:
Tuần đầu của tháng sẽ lấy dữ liệu từ ngày 01~ thứ 4 của tuần tiếp theo                                      
tuần tiếp theo: lấy dữ liệu của ngày T5~T4 tuần tiếp                                      
tuần cuối: dữ liệu T5~T4 + những ngày cuối tháng đó, để chốt dữ liệu trong tháng

tuần nào không có dữ liệu thì số tuần (W10,...) sẽ bị ẩn,
Ví dụ trong file là tháng 2 sẽ liệt kê số tuần đến W10, nhưng vì theo nguyên tắc gộp ngày như trên thì dữ liệu của W10 sẽ được gộp vào tuần W9 nên W10 sẽ không có dữ liệu thì tiêu đề "W10" sẽ không liệt kê ra nữa (ẩn đi)
 
Lần chỉnh sửa cuối:
Thực ra là nó nối của bài này ạ, nhưng em sợ hỏi tiếp lại sai chủ đề, nên lập topic mới ạ.
https://giaiphapexcel.com/diendan/threads/nhờ-rút-gọn-công-thức-liệt-kê-số-tuần-trong-tháng.140769/#post-905854

Ý em là muốn chia dữ liệu vào các tuần của 1 tháng theo nguyên tắc:
Mã:
Tuần đầu của tháng sẽ lấy dữ liệu từ ngày 01~ thứ 4 của tuần tiếp theo                                     
tuần tiếp theo: lấy dữ liệu của ngày T5~T4 tuần tiếp                                     
tuần cuối: dữ liệu T5~T4 + những ngày cuối tháng đó, để chốt dữ liệu trong tháng

tuần nào không có dữ liệu thì số tuần (W10,...) sẽ bị ẩn,
Ví dụ trong file là tháng 2 sẽ liệt kê số tuần đến W10, nhưng vì theo nguyên tắc gộp ngày như trên thì dữ liệu của W10 sẽ được gộp vào tuần W9 nên W10 sẽ không có dữ liệu thì tiêu đề "W10" sẽ không liệt kê ra nữa (ẩn đi)
Có rất nhiều điểm thắc mắc như sau:
Tuần nào trong tháng được xác định là cuối tháng.
Những ngày cuối tháng tối đa bao nhiêu ngày.
Giả sử lấy từ thứ tư của tháng tiếp theo thì những ngày trước thứ tư nhưng trong tháng đó sẽ để đâu ?
 
Thông thường sẽ lấy dữ liệu theo quy luật: từ thứ 5 tuần trước đến thứ 4 tuần sau được tính là 1 tuần,
Tuy nhiên:
- Tuần đầu tiên của tháng: sẽ lấy dữ liệu từ ngày mùng 01 (của tháng đó) đến thứ 4 (gần nhất),
- Tuần tiếp theo của tuần đầu, sẽ theo quy luật (T5 tuần này~T4 tuần sau),....
- Tuần cuối cùng của tháng:
Sẽ lấy theo quy luật (T5~T4 tuần sau) và
Cộng thêm: các ngày còn lại của tháng (tính đến cuối tháng)/các ngày này không tròn 1 chu kỳ (T5~T4) trong cùng 1 tháng (vì sang tháng tiếp theo mới hết chu kỳ T5~T4)


(Lấy dữ liệu của tháng 2 làm ví dụ ạ, anh xem file đính kèm hộ em với ạ)

-----
Sang tháng 3 thì tuần W10 (tuần đầu tiên của tháng) sẽ lấy dữ liệu từ mùng 01/03~thứ 4 gần nhất, tuần tiếp theo lại lấy theo quy luật (T5~T4)...
 

File đính kèm

Thông thường sẽ lấy dữ liệu theo quy luật: từ thứ 5 tuần trước đến thứ 4 tuần sau được tính là 1 tuần,
Tuy nhiên:
- Tuần đầu tiên của tháng: sẽ lấy dữ liệu từ ngày mùng 01 (của tháng đó) đến thứ 4 (gần nhất),
- Tuần tiếp theo của tuần đầu, sẽ theo quy luật (T5 tuần này~T4 tuần sau),....
- Tuần cuối cùng của tháng:
Sẽ lấy theo quy luật (T5~T4 tuần sau) và
Cộng thêm: các ngày còn lại của tháng (tính đến cuối tháng)/các ngày này không tròn 1 chu kỳ (T5~T4) trong cùng 1 tháng (vì sang tháng tiếp theo mới hết chu kỳ T5~T4)


(Lấy dữ liệu của tháng 2 làm ví dụ ạ, anh xem file đính kèm hộ em với ạ)

-----
Sang tháng 3 thì tuần W10 (tuần đầu tiên của tháng) sẽ lấy dữ liệu từ mùng 01/03~thứ 4 gần nhất, tuần tiếp theo lại lấy theo quy luật (T5~T4)...
Điều chỉnh:
1/ Tiêu đề tuần:
Mã:
P22=IF(IFERROR(MID(O$22,2,2)+1<=WEEKNUM(MAX($B$16:$M$16),14)-(COUNT(1/(WEEKNUM(MAX($B$16:$M$16),14)=WEEKNUM($B$16:$M$16*1,14)))<7),),TEXT(MID(O$22,2,2)+1,"W0"),"")
Kết thúc bằng Ctrl+Shift+Enter, rồi fill qua phải.
2/ Số cộng theo tuần, và cộng dồn khi tuần cuối cùng không đủ 7 ngày.
Mã:
O23=IFERROR(SUM(IF(P$22<>"",Assy!$AF$7:$AF$10000=--(MID(O$22,2,2)),Assy!$AF$7:$AF$10000>=--(MID(O$22,2,2)))*Assy!$M$7:$M$10000*(MONTH(Assy!$A$7:$A$10000)='Defect rate'!$N$1:$O$1)),"")
Kết thúc bằng Ctrl+Shift+Enter, rồi fill qua phải.

Tương tự cho các ô dưới thay thế bằng đoạn công thức SUM(IF(P$22<>"",Assy!$AF$7:$AF$10000=--(MID(O$22,2,2)),Assy!$AF$7:$AF$10000>=--(MID(O$22,2,2))).

Thân
 

File đính kèm

Lần chỉnh sửa cuối:
@Phan Thế Hiệp : anh ơi, em lại làm phiền anh chút nữa,
Sếp em mới ra quy định thống nhất về đánh số tuần (sheet 'Calendar')
theo cách cũ thì tháng 2 sẽ có W5~W9
nhưng theo cách chia mới của sếp thì tháng 2 chỉ có W5~W8 (do đó bị liệt kê dư W9) , anh giúp em xử lý với ạ, em cảm ơn anh
 

File đính kèm

@Phan Thế Hiệp : anh ơi, em lại làm phiền anh chút nữa,
Sếp em mới ra quy định thống nhất về đánh số tuần (sheet 'Calendar')
theo cách cũ thì tháng 2 sẽ có W5~W9
nhưng theo cách chia mới của sếp thì tháng 2 chỉ có W5~W8 (do đó bị liệt kê dư W9) , anh giúp em xử lý với ạ, em cảm ơn anh
Bạn đã phân rõ tuần hết rồi, đâu còn sợ gì nữa. Vậy cứ trở lại gần giống như ban đầu thôi!
Mã:
P22=IF(IFERROR(MID(O$22,2,2)+1<=VLOOKUP(MAX($B$16:$M$16),Calendar!$D$2:$F$366,2,),),TEXT(MID(O$22,2,2)+1,"W0"),"")
O23=IF(O$22<>"",SUMPRODUCT((Assy!$AF$7:$AF$10000=--MID(O$22,2,2))*Assy!$M$7:$M$10000*(MONTH(Assy!$A$7:$A$10000)=$N$1:$O$1)),)
Chỉ Enter.

Thân
 

File đính kèm

Web KT

Bài viết mới nhất

Back
Top Bottom