hoangtuaotrang_hp_vn
Thành viên tích cực


- Tham gia
- 17/5/09
- Bài viết
- 1,016
- Được thích
- 892
Không hiểu bạn muốn gì, dữ liệu không có xét theo điều kiện nào ?
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
Có rất nhiều điểm thắc mắc như sau: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)
Điều chỉnh: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)...
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"),"")
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)),"")
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!@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
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)),)