Chọn số tuần, thì liệt kê số ngày tương ứng của tuần đó (1 người xem)

Liên hệ QC

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

hoangtuaotrang_hp_vn

Thành viên tích cực
Tham gia
17/5/09
Bài viết
1,010
Được thích
884
Em chào anh/chị,

Em có bài toán, khi mình chọn số tuần (trong tháng) muốn xem, thì liệt kê số ngày của tuần đó, chi tiết em ghi trong file ạ

Mong anh/chị giúp đỡ

Em chân thành cảm ơn
 

File đính kèm

Lần chỉnh sửa cuối:
Em chào anh/chị,

Em có bài toán, khi mình chọn số tuần (trong tháng) muốn xem, thì liệt kê số ngày của tuần đó, chi tiết em ghi trong file ạ

Mong anh/chị giúp đỡ

Em chân thành cảm ơn
Như vậy khái niệm tuần của bạn không phải là 7 ngày. Mà là có cả < 7 ngày
 
vâng anh, tại mình truy xuất dữ liệu theo tháng, nên chỉ lấy trọn vẹn dữ liệu của tháng ấy thôi (phân bổ dữ liệu theo từng tuần của tháng ấy)
Bài này tôi nghĩ mãi không ra được bước cuối cùng.
Để nhanh, tôi đưa lên để mọi người cùng tìm cách giải quyết bước cuối cùng.
Tôi làm như sau:
- Bước 1: dùng công thức để xác định thứ tự tuần trong tháng của từng ngày thuộc danh sách của Sheet Calendar (công thức ở cột E)
- Bước 2: tạo các hàng phụ và ô phụ (bôi vàng)
- Bước 3: ra kết quả theo yêu cầu (chưa tìm ra công thức thích hợp, bị sai nếu ngày 01 của tháng không phải là thứ hai)
Nhờ mọi người trong diễn đàn cùng nghĩ cách nhé!
 

File đính kèm

Em chào anh/chị,

Em có bài toán, khi mình chọn số tuần (trong tháng) muốn xem, thì liệt kê số ngày của tuần đó, chi tiết em ghi trong file ạ

Mong anh/chị giúp đỡ

Em chân thành cảm ơn
Tham khảo:
Mã:
K11=IF(K$13="","",$K$8)
K13=IFERROR(AGGREGATE(15,6,Calendar!$F$2:$F$370/($K$8=Calendar!$E$2:$E$370)/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),1),"")
L13=IFERROR(IF(K$13+1<=AGGREGATE(14,6,Calendar!$F$2:$F$370/($K$8=Calendar!$E$2:$E$370)/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),1),K$13+1,""),"")
Chỉ Enter.
Xem file kèm.

Thân
 

File đính kèm

Lần chỉnh sửa cuối:
Tham khảo:
Mã:
K11=IF(K$13="","",$K$8)
K13=IFERROR(AGGREGATE(15,6,Calendar!$F$2:$F$370/($K$8=Calendar!$E$2:$E$370)/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),1),"")
L13=IFERROR(IF(K$13+1<=AGGREGATE(14,6,Calendar!$F$2:$F$370/($K$8=Calendar!$E$2:$E$370)/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),1),K$13+1,""),"")
Chỉ Enter.
Xem file kèm.

Thân
Em chạy thử thì có 1 số tháng bị thiếu 1/ vài ngày cuối tháng anh ạ.
Đó là tháng 01, 02, 03, 05, 06, 08, 10, 11
 
Xem lại yêu cầu thì chủ thớt muốn làm 1 công thức có hai trường hợp:
Khi chọn năm, tháng và số tuần trong tháng, 1 tháng có 4 hoặc 5 (hoặc 6 tuần)
thì K13~Q13 sẽ liệt kê số ngày tương ứng của tuần đó theo quy tắc:
  1. Dò tìm trong sheet 'Calendar', tìm lấy kết quả trong vùng: E2:F366
  2. Nếu trong vùng E2:F366 không có dữ liệu thì số tuần sẽ đc quy ước như sau:
    • Tuần 1 của tháng: tính từ ngày mùng 1 đến CN gần nhất
    • Tuần tiếp theo: T2~CN
    • Tuần cuối cùng: T2~Ngày cuối tháng
Trường hợp 1: Nếu vùng E2:F366 có dữ liệu
Do đã ấn định số thứ tự của tuần trong tháng, nên sẽ có tháng tuần cuối cùng có số ngày lớn hơn 7 ngày, nên liệt kê thiếu trong tiêu đề là chuyện đương nhiên (trả lời cho @vanthinh3101)
Em chạy thử thì có 1 số tháng bị thiếu 1/ vài ngày cuối tháng anh ạ.Đó là tháng 01, 02, 03, 05, 06, 08, 10, 11
Trường hợp 2: Nếu vùng E2:F366 không có dữ liệu, tôi cho là ý chủ thớt bảo: cột E2:E366 sẽ không ấn định sẵn số thứ tự của tuần trong tháng, lúc đó làm theo yêu cầu 2.

Nếu đúng vậy, chủ thớt tạm dùng công thức sau:
Mã:
K13=IFERROR(IFERROR(AGGREGATE(15,6,Calendar!$F$2:$F$370/($K$8=Calendar!$E$2:$E$370)/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),1),AGGREGATE(15,6,AGGREGATE(15,6,Calendar!$F$2:$F$370/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),ROW($1:$400))/((INT(AGGREGATE(15,6,(Calendar!$F$2:$F$370-WORKDAY.INTL(DATE($D$8,$G$8,1)-1,1,"1111110")-1)/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),ROW($1:$400))/7)+1)=$K$8-1),COLUMN(A$1))),"")
L13=IF(K13="","",IFERROR(IFERROR(IF(K$13+1<=AGGREGATE(14,6,Calendar!$F$2:$F$370/($K$8=Calendar!$E$2:$E$370)/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),1),K$13+1,""),AGGREGATE(15,6,AGGREGATE(15,6,Calendar!$F$2:$F$370/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),ROW($1:$400))/((INT(AGGREGATE(15,6,(Calendar!$F$2:$F$370-WORKDAY.INTL(DATE($D$8,$G$8,1)-1,1,"1111110")-1)/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),ROW($1:$400))/7)+1)=$K$8-1),COLUMN(B$1))),""))
Enter, copy công thức ô L13 qua phải.

Trong file tôi đã xóa cột tuần của tháng 3 và 4 để làm theo yêu cầu 2 của chủ thớt.
Tạm thời vậy, rảnh chút tôi sẽ tìm phương án khác thay thế.

Thân
 

File đính kèm

Em chào anh/chị,

Em có bài toán, khi mình chọn số tuần (trong tháng) muốn xem, thì liệt kê số ngày của tuần đó, chi tiết em ghi trong file ạ

Mong anh/chị giúp đỡ

Em chân thành cảm ơn
Chọn tuần quá số tuần trong tháng kết quả trả về ngày đầu tháng sau
Xem file
 

File đính kèm

Chọn tuần quá số tuần trong tháng kết quả trả về ngày đầu tháng sau
Xem file
Gọn bưng! :clap:

Lồng thêm Trường hợp 1 nữa anh!

Chúc anh ngày vui.
/-*+//-*+//-*+/

@hoangtuaotrang_hp_vn :
Góp thêm cách dùng cột phụ:
Mã:
Cột phụ=IF(AND(E2="",TEXT(F2,"myyyy")=Report!$G$8&Report!$D$8),INT((F2-WORKDAY.INTL(EOMONTH(F2,-1),1,"1111110")-1)/7)+2,"")
K13=IFERROR(AGGREGATE(15,6,Calendar!$F$2:$F$370/($K$8=IFERROR(1/(1/Calendar!$E$2:$E$370),Calendar!$H$2:$H$370))/(DATE($D$8,$G$8,1)=EOMONTH(Calendar!$F$2:$F$370*1,-1)+1),COLUMN(A$1)),"")
Enter, fill qua phải.

Thân
 

File đính kèm

Lần chỉnh sửa cuối:
Công sức của em cũng ra kết quả rồi các anh ạ.
Công thức có vẻ lằng nhằng lắm nhưng kết quả cũng tạm được.
Bài đã được tự động gộp:

Chọn tuần quá số tuần trong tháng kết quả trả về ngày đầu tháng sau
Xem file
Công thức của anh gọn gàng quá :clap2:
 

File đính kèm

Thấy người ta giải ầm ầm mà hoang mang quá. Chả nhẽ tuổi đã đến mức lú lẫn không hiểu được người khác nói gì! Buồn quá.

Bạn có thể giải thích
Khi chọn năm, tháng và số tuần trong tháng, 1 tháng có 4 hoặc 5 (hoặc 6 tuần)
thì K13~Q13 sẽ liệt kê số ngày tương ứng của tuần đó theo quy tắc:
1. Dò tìm trong sheet 'Calendar', tìm lấy kết quả trong vùng: E2:F366
2. Nếu trong vùng E2:F366 không có dữ liệu thì số tuần sẽ đc quy ước như sau:

Trong Calendar:
1 2019-01-01
1 2019-01-02
1 2019-01-03
1 2019-01-04
1 2019-01-05
1 2019-01-06
1 2019-01-07
1 2019-01-08
1 2019-01-09
???

Nhìn tháng 1 năm 2019 trên lịch tường thì chịu không hiểu tại sao tuần 1 có 9 ngày: thứ 3, thứ 4, thứ 5, thứ 6, thứ 7, CN, thứ 2, thứ 3, thứ 4. Thấy kỳ kỳ thế nào ấy.

Hay có ứng dụng tiền tỷ nào cần số ngày trong tuần như thế?
Ví dụ: tháng 3/2019: Tuần 1: 01/03~03/03
Tuần 2: 04/03~10/03
Tuần 3: 11/03~17/03
Tuần 4: 18/03~24/03
Tuần 5: 25/03~31/03

Đọc đến đây không hiểu nhà thơ nghĩ gì luôn.

Rõ ràng có ghi là trước hết tìm trong Calendar
Khi chọn năm, tháng và số tuần trong tháng, 1 tháng có 4 hoặc 5 (hoặc 6 tuần)
thì K13~Q13 sẽ liệt kê số ngày tương ứng của tuần đó theo quy tắc:
1. Dò tìm trong sheet 'Calendar', tìm lấy kết quả trong vùng: E2:F366
2. Nếu trong vùng E2:F366 không có dữ liệu thì số tuần sẽ đc quy ước như sau:
Tức Calendar là tiêu chí đầu tiên, tiêu chí số 1, quan trọng nhất. Mà theo Calendar thì:
1 2019-03-01
1 2019-03-02
1 2019-03-03
1 2019-03-04
1 2019-03-05
1 2019-03-06

Tức tuần 1 có 6 ngày từ 01 tới 06. Mâu thuẫn.

Kết luận:
1. Mâu thuẫn trong cách diễn giải.
2. Không hiểu tiêu chí Calendar để làm trò gì. Nhất là khi theo nó thì hơi bị buồn cười. Tuần 1 của tháng 1/2019 có 9 ngày, và tuần 1 của 3/2019 có 6 ngày? Lần đầu trong đời thấy cách tính khác người. Có lẽ đã đến lúc vào nhà dưỡng lão rồi. Buồn quá. Chắc những người khác "nhìn" thấy được những đoạn được viết giữa các dòng bằng bút mực tàng hình chăng. :D
 
Lần chỉnh sửa cuối:
Thấy người ta giải ầm ầm mà hoang mang quá. Chả nhẽ tuổi đã đến mức lú lẫn không hiểu được người khác nói gì! Buồn quá.

Bạn có thể giải thích

???

Nhìn tháng 1 năm 2019 trên lịch tường thì chịu không hiểu tại sao tuần 1 có 9 ngày: thứ 3, thứ 4, thứ 5, thứ 6, thứ 7, CN, thứ 2, thứ 3, thứ 4. Thấy kỳ kỳ thế nào ấy.

Hay có ứng dụng tiền tỷ nào cần số ngày trong tuần như thế?


Đọc đến đây không hiểu nhà thơ nghĩ gì luôn.

Rõ ràng có ghi là trước hết tìm trong Calendar

Tức Calendar là tiêu chí đầu tiên, tiêu chí số 1, quan trọng nhất. Mà theo Calendar thì:
1 2019-03-01
1 2019-03-02
1 2019-03-03
1 2019-03-04
1 2019-03-05
1 2019-03-06

Tức tuần 1 có 6 ngày từ 01 tới 06. Mâu thuẫn.

Kết luận:
1. Mâu thuẫn trong cách diễn giải.
2. Không hiểu tiêu chí Calendar để làm trò gì. Nhất là khi theo nó thì hơi bị buồn cười. Tuần 1 của tháng 1/2019 có 9 ngày, và tuần 1 của 3/2019 có 6 ngày? Lần đầu trong đời thấy cách tính khác người. Có lẽ đã đến lúc vào nhà dưỡng lão rồi. Buồn quá. Chắc những người khác "nhìn" thấy được những đoạn được viết giữa các dòng bằng bút mực tàng hình chăng. :D

em chào anh,

Calendar là lịch sếp em quy ước để các nhân viên lấy số liệu làm báo cáo cho thống nhất (chứ lúc trước, mỗi nhân viên tự ý lấy số liệu tuần 1 của tháng theo 1 quy ước số ngày khác nhau)
Còn trong Calendar không có dữ liệu (cái này là em muốn mở rộng công thức: ví dụ sau này đi công ty khác, Sếp không quy định cho mình số ngày thuộc tuần nào thì mình sẽ tự quy ước, lấy theo số tuần trong tháng của lịch bình thường (đầu tuần sẽ là thứ 2)

Nói chung là em văn kém lắm, may có anh Phan Thế Hiệp giải thích gãy gọn hộ em rùi:

Trường hợp 1: Nếu vùng E2:F366 có dữ liệu
Do đã ấn định số thứ tự của tuần trong tháng, nên sẽ có tháng tuần cuối cùng có số ngày lớn hơn 7 ngày, nên liệt kê thiếu trong tiêu đề là chuyện đương nhiên

Trường hợp 2: Nếu vùng E2:F366 không có dữ liệu, tôi cho là ý chủ thớt bảo: cột E2:E366 sẽ không ấn định sẵn số thứ tự của tuần trong tháng, lúc đó làm theo yêu cầu 2.
 
Lần chỉnh sửa cuối:
Trường hợp 1: Nếu vùng E2:F366 có dữ liệu
Do đã ấn định số thứ tự của tuần trong tháng, nên sẽ có tháng tuần cuối cùng có số ngày lớn hơn 7 ngày, nên liệt kê thiếu trong tiêu đề là chuyện đương nhiên

Trường hợp 2: Nếu vùng E2:F366 không có dữ liệu, tôi cho là ý chủ thớt bảo: cột E2:E366 sẽ không ấn định sẵn số thứ tự của tuần trong tháng, lúc đó làm theo yêu cầu 2.
Không có chỗ nào bạn nói tới chuyện "Nếu vùng E2:F366 có dữ liệu, Nếu vùng E2:F366 không có dữ liệu". Hay là tôi đọc sót? Mà tập tin của bạn là có dữ liệu trong vùng E2:F366 nên cứ theo qui tắc bạn tự đưa ra thôi. Tôi không đưa ra qui tắc đó mà là bạn tự đưa ra qui tắc. Mà theo qui tắc đó thì VD. mà bạn đưa ra mâu thuẫn với qui tắc đó.

Ngoài ra tôi thấy kỳ kỳ khi nhìn lên lịch tháng 1 mà ai đó lại nói tuần 1 của tháng 1 có 9 ngày: thứ 3, thứ 4, thứ 5, thứ 6, thứ 7, CN, thứ 2, thứ 3, thứ 4. Trong đời chưa một lần từng thấy.

Tôi chỉ căn cứ vào những gì bạn viết thôi chứ tôi không cần phiên dịch. Tôi vẫn còn hiểu tiếng Việt chứ không cần phiên dịch đâu. Những gì đã viết trên giấy trắng bằng mực đen thì tôi đều hiểu. Chắc chắn còn hiểu hơn nhiều người.

Mà thôi. Tôi tưởng tôi lú lẫn thôi. Hóa ra đầu óc vẫn còn minh mẫn lắm.
 
Không có chỗ nào bạn nói tới chuyện "Nếu vùng E2:F366 có dữ liệu, Nếu vùng E2:F366 không có dữ liệu". Hay là tôi đọc sót? Mà tập tin của bạn là có dữ liệu trong vùng E2:F366 nên cứ theo qui tắc bạn tự đưa ra thôi. Tôi không đưa ra qui tắc đó mà là bạn tự đưa ra qui tắc. Mà theo qui tắc đó thì VD. mà bạn đưa ra mâu thuẫn với qui tắc đó.

Ngoài ra tôi thấy kỳ kỳ khi nhìn lên lịch tháng 1 mà ai đó lại nói tuần 1 của tháng 1 có 9 ngày: thứ 3, thứ 4, thứ 5, thứ 6, thứ 7, CN, thứ 2, thứ 3, thứ 4. Trong đời chưa một lần từng thấy.

Tôi chỉ căn cứ vào những gì bạn viết thôi chứ tôi không cần phiên dịch. Tôi vẫn còn hiểu tiếng Việt chứ không cần phiên dịch đâu. Những gì đã viết trên giấy trắng bằng mực đen thì tôi đều hiểu. Chắc chắn còn hiểu hơn nhiều người.

Mà thôi. Tôi tưởng tôi lú lẫn thôi. Hóa ra đầu óc vẫn còn minh mẫn lắm.

Vâng anh, do em chưa giải thích kỹ và cũng 1 phần là do em hơi kém trong khoản diễn giải ạ, em rút kinh nghiệm lần sau, em cảm ơn anh nhé ^^
 
Rỗi làm thử như vầy, xin mới xem thêm 1 tham khảo
 

File đính kèm

Nhờ các anh/chị kiểm tra công thức giúp em ở C2 sao cho các ngày lễ đã được liệt kê trong cột D sẽ bị loại trừ.

=IF(AND(WEEKDAY($A2,2)<7,A2<>$D$2:$D$366),"On","Off")
 

File đính kèm

Web KT

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

Back
Top Bottom