How to count Sat and Sun in the month(Đếm ngày thứ 7 và CN trong một tháng ntn?)

Liên hệ QC

thuan1975

Thành viên mới
Tham gia
12/2/08
Bài viết
44
Được thích
46
Hi everybody.

tôi có 1 việc nhờ mọi người giúp với. cụ thể như sau:
với input là "mm/yyyy" và output là Number. Number là tổng Sat và Sun của mm đó.

Note: Hàm (hợp) này nên sử dụng các Function có sẵn của Excel.

Mong thư của các Pro.
 
Xin lưu ý:
Khi bạn nhập vào 1 date dạng mm/yyyy thì nó sẽ tự động đổi thành ngày tháng năm... Ví dụ nhập vào 5/2005 thì nó sẽ hiểu là ngày 1 tháng 5 năm 2005 ... Nhưng nếu nhập vào 5/05 thì nó lại hiểu ngày 5 tháng năm của năm hiện hành (ngày trước hay tháng trước còn tùy thuộc vào cài đặt trong Control Panel)
Vậy khi bạn nhập vào như thế thì mặc định bạn đã có dc ngày đầu tháng... Việc còn lại là tìm ngày cuối cũa tháng đó.. Cuối cùng là tham khảo cách tính tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=2515&page=3http://www.giaiphapexcel.com/forum/showthread.php?t=2515
Nói riêng với bạn: Nếu bạn giõi tiếng Anh như thế thì cần gì vào GPE hỏi cho mất công, Seach Google câu hỏi cũa bạn thì sẽ ra hàng đóng công thức... Hic...
ANH TUẤN
 
thuan1975 đã viết:
với input là "mm/yyyy" và output là Number. Number là tổng Sat và Sun của mm đó.

Tôi dùng name và cột phụ để tính, không nghĩ ra công thức, làm xong file thấy bài Anhtuan có công thức hay quá.

Bạn muốn dùng công thức thì dùng công thức của Anhtuan, xác định thêm ngày cuối tháng nữa là xong, vì tôi đang học name nên làm name --=0
 

File đính kèm

Chào bạn Viendo:
Cách cũa bạn là tương đối dễ hiểu nhất, tuy nhiên đã dùng OFFSET thì nên định vị vừa đũ, chứ tháng nào cũng tính đúng 31 cell thì e rằng sẽ có nhằm lẩn!
Tôi xin phép sửa lại:
Mã:
[B]sn[/B] =DAY(DATE(YEAR(Sheet1!$A$2),MONTH(Sheet1!$A$2)+1,0))
Như thế thì name thu sẽ bao vừa đũ đến ngày cuối tháng ko dư ngày nào cả
3 cột phụ cũa bạn có thể bõ bớt cột H và I... Tại cell J1 bạn dùng công thức:
Mã:
=WEEKDAY(DATE(YEAR($A$2),MONTH($A$2),ROW()))
Kéo fill xuống đến dòng 31 là xong
Mến
ANH TUẤN
 
Lần chỉnh sửa cuối:
Tôi còn có 1 cách khác có thể bỏ hết dc tất cã các cột phụ luôn!
Bạn đặt name:
Mã:
NGAY =$A$2 -1+ ROW(INDIRECT("1:"&DAY(DATE(YEAR($A$2),MONTH($A$2)+1,0))))
Tại cell B2 dùng công thức:
Mã:
=SUMPRODUCT((WEEKDAY(NGAY,2)>5)*1)
Khỏe re.. khỏi có cột phụ nào! Hi... hi...
ANH TUẤN
 
Lần chỉnh sửa cuối:
Nhận xét giúp công thức sau:

Tôi gán ô chứa ngày (bắt đầu tính) có tên Ngay
Số ngày tăng chứa trong ô có tên là SoNgay
Vậy =WEEKDAY(Ngay) - sẽ cho thứ trong tuần của ngày Ngay;
= 7 -WEEKDAY(Ngay) - sẽ là số ngày cần thiết để đến được thứ bảy gần nhất, kể từ Ngay;
Tiếp, Để đến ngày Ngay + SoNgay kể từ ngày thứ bảy gần nhất kia, tôi chỉ còn:
= SoNgay -7 + WEEKDAY(Ngay)

Ta xem thử nó có bao nhiêu tuần:
= ( SoNgay - 7 + WEEKDAY(Ngay))/7
Giờ ta chỉ việc lấy phần nguyên (cho dễ đọc) cộng thêm 1 là ra công thức (?!)

Kết luận tôi có công thức sau:

=1+INT((SoNgay-7+WEEKDAY(Ngay))/7)
 
Hi everybody.
Công thức của AnhTuan1066 và VuNgoc rất hay.
Chỉ dùng Function chuẩn của Excel
Không dùng thêm Col/Row phụ.

Hiện đang kiểm tra thêm các Năm có Nhuận ngày 29/2
thấy cũng rất tốt.

Tôi đã tổng hợp các ý kiến đóng góp của các Pro và đưa ra được 1 Function như sau:
A2(value):01/01/2008 (mm/dd/yyyy)
B2(function):=CHOOSE(TEXT(A2,"mm"),31,IF(OR((AND(MOD(YEAR(A2),4)=0,MOD(YEAR(A2),100)<>0)), (MOD(YEAR(A2),400)=0)), 29,28),31,30,31,30,31,31,30,31,30,31)
Function này trả lại số ngày trong mm/dd/yyyy của A1
C1(function):=A2+B2
Function này trả lại ngày đầu tiên của tháng kết tiếp.
Trong ví dụ này thì trả về 02/01/2008 (mm/dd/yyyy)
D2(function):=INT(INT((C2-A2-WEEKDAY(C2-5,2)+8)/7) + INT((C2-A2-WEEKDAY(C2-6,2)+8)/7))
Function này trả lại tổng số ngày T7 và CN trong tháng ghi tại A2 (mm/dd/yyyy)

Nhờ các Pro xem lại giúp

Tôi thấy vẫn chưa chính xác với năm nhuận
 
Chỉnh sửa lần cuối bởi điều hành viên:
Ai chà chà... cell B2 mà đồng chí dùng hàm này thì.. rách việc quá, sao ko là:
Mã:
=DAY(DATE(YEAR(A2),MONTH(A2)+1,0))
Đây là tổng số ngày trong tháng tại A2
Đồng chí đễ ý thêm:
C2 = A2 + B2
Mà cell D2 lại có đoạn:
C2 - A2... tức là =A2 + B2 - A2----> Có phải là =B2 ko?
Còn cái nữa: Tôi cã hiễu tại sao lại có đến.. 3 cái INT tại cell D2 ??? Chẳng lẽ đồng chí sợ kết quã ko nguyên ???
Và lưu ý thêm: theo như công thức trên thì C2 là ngày đầu tháng sau, nếu lở ngày này thuộc thứ 7 hoặc CN thì sao? Tính luôn chắc ? Hi.. hi... (Hãy thử nhập vào A2 ngày 1 tháng 5 năm 2008 sẽ biết... Có tổng cộng 9 ngày cã thứ 7 lẩn CN.. nhưng công thức cũa đồng chí ra kết quã = 10 nhé... vì ngay 1 tháng 6 là CN, công thức đó nó tính luôn)
Tóm lại chỉ cần tính ngày cuối tháng là ngày nào, vậy là ra thôi
Ta có
A2= 1/1/2008 (Dử liệu nhập)
B2 =DATE(YEAR(A2),MONTH(A2)+1,0) chính là ngày cuối tháng cũa tháng tại cell A2
Vậy áp dụng vào công thức tính số ngày thứ bãy, CN rồi cộng lại là xong
Mã:
[B]=INT((B2-A2-WEEKDAY(B2-5,2)+8)/7) + INT((B2-A2-WEEKDAY(B2-6,2)+8)/7)[/B]
Còn ko thì hãy suy nghỉ thêm về công thức ở bài #5, nó làm dc hàng đóng chuyện khác nữa chứ ko phải chỉ đơn giãn đễ đếm ngày thứ bảy, CN đâu
ANH TUẤN
 
Lần chỉnh sửa cuối:
Ok rồi.
Đúng là có tí nhầm lẫn.
Function của 1066 đúng rồi.

Cám ơn nhiều nhé.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Web KT

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

Back
Top Bottom