Dùng hàm hoặc code nào để tính được số ngày Chủ Nhật trong một quãng T/G bất kỳ

Liên hệ QC
chào anh Tuấn
Rất cám ơn Anh về đề công thức có thể đếm đươc số ngày của bất kỳ trong một khoảng thời gian.
nhưng cách xác định ngày chủ nhật đầu tiên Tôi thấy anh viết: Ngày CHỦ NHẬT đầu tiên: = A1 - WEEKDAY(A1,2)+ 7.
Tôi thử kiểm tra trong khoảng thời gian từ ngày 10/01/2007 đến ngày 27/01/2007 thì nó là ngày 13/01/2007 tương ứng đó là ngày thứ bẩy chứ không pải là ngày chủ nhật. Nếu tôi thay 7 => 8 thì là ngày 14/01/2007 thì đúng là ngày chủ nhật.
Tôi đang phân vân ??
 
chào anh Tuấn
Rất cám ơn Anh về đề công thức có thể đếm đươc số ngày của bất kỳ trong một khoảng thời gian.
nhưng cách xác định ngày chủ nhật đầu tiên Tôi thấy anh viết: Ngày CHỦ NHẬT đầu tiên: = A1 - WEEKDAY(A1,2)+ 7.
Tôi thử kiểm tra trong khoảng thời gian từ ngày 10/01/2007 đến ngày 27/01/2007 thì nó là ngày
13/01/2007 tương ứng đó là ngày thứ bẩy chứ không pải là ngày chủ nhật. Nếu tôi thay 7 => 8 thì là ngày 14/01/2007 thì đúng là ngày chủ nhật.
Tôi đang phân vân ??

Hôm nay thức khuya mới phát hiện bài này ---> Chẳng hiểu bạn tính cách nào mà ra thứ bảy nữa
Này nhé:
- Ta có ngày 10/01/2007 tại cell A1
- Suy ra WEEKDAY(A1,2) = 3 (chú ý có số 2 trong Weekday nhé)
- Suy ra A1 - WEEKDAY(A1,2)+ 7 = 10/01/2007 - 3 + 7 ----> Chẳng bằng 14/01/2007 là gì?
Sao bạn lại ra được kết quả 13/01/2007 cơ chứ?
 
tính số ngày thứ 7, CN và xuất ra danh sách

Anh ndu96081631 xem giúp em bài toán này. Nếu có ngày đầu năm 1/1/2013 và ngày cuối năm 31/12/2013 thì có cách nào lấy ra tất cả các ngày thứ 7, CN trong năm không ?
 

File đính kèm

  • tinh ngay trong nam.xlsx
    9.4 KB · Đọc: 79
chào anh Tuấn
Rất cám ơn Anh về đề công thức có thể đếm đươc số ngày của bất kỳ trong một khoảng thời gian.
nhưng cách xác định ngày chủ nhật đầu tiên Tôi thấy anh viết: Ngày CHỦ NHẬT đầu tiên: = A1 - WEEKDAY(A1,2)+ 7.
Tôi thử kiểm tra trong khoảng thời gian từ ngày 10/01/2007 đến ngày 27/01/2007 thì nó là ngày 13/01/2007 tương ứng đó là ngày thứ bẩy chứ không pải là ngày chủ nhật. Nếu tôi thay 7 => 8 thì là ngày 14/01/2007 thì đúng là ngày chủ nhật.
Tôi đang phân vân ??

Code dưới đây sẽ liệt kê các ngày chủ nhật giữa hai khoảng ngày/tháng/năm
Dim i As Date: Dim x$
For i = Text1 To Text2
If Weekday(i) = 1 Then x = x & ", " & i
Next
MsgBox "Cac ngay chu nhat la : " & x
 
Một cách khác để bạn thêm tham khảo: Hàm mảng tự tạo

[ThongBao]Anh . . . xem giúp em bài toán này. Nếu có ngày đầu năm 1/1/2013 và ngày cuối năm 31/12/2013 thì có cách nào lấy ra tất cả các ngày thứ 7, CN trong năm không ?[/ThongBao]
 

File đính kèm

  • gpeUDF.rar
    9.8 KB · Đọc: 110
File của bạn HYen17 thì hay quá rồi, nhưng mình không rành về VBP, có cách nào đơn giản, dễ hiểu hơn không -\\/.
 
File của bạn HYen17 thì hay quá rồi, nhưng mình không rành về VBP, có cách nào đơn giản, dễ hiểu hơn không -\\/.

Giả định bạn có 2 giá trị StartDateEndDate, với EndDate > StartDate
- Vậy, bằng cách nào đó, bạn tìm được 1 giá trị Start_1 >= StartDate lại vừa là ngày CN. Hãy gõ nó vào 1 cell.
- Cell bên dưới sẽ bằng cell trên cộng thêm 7 (ngày CN kế tiếp)
- Cứ thể kéo fill đến khi nào thấy vượt quá EndDate thì ngưng (ta có thể lồng thêm điều kiện để nó tự "ngưng")
Quá dễ
Gợi ý cho bạn giá trị Start_1 = StartDate - WEEKDAY(StartDate,2)+ 7
 
Tại sao chúng ta lại quên rằng hàm WEEKDAY còn có tham số nữa, là 1, 2 hoặc 3. Trước giờ cứ quen xài dạng WEEKDAY (X), mặc định ko ghi gì có nghĩa là tham số = 1, WEEKDAY(X) cũng = WEEKDAY(X,1). Tôi vừa phát hiện ra 1 công thức tổng quát khác. Nó có thể tính được số ngày bất kỳ giữa 2 móc thời gian:
Tính số ngày thứ hai: =INT((A2-A1-WEEKDAY(A2,2)+8)/7)
Tính số ngày thứ ba: =INT((A2-A1-WEEKDAY(A2-1,2)+8)/7)
Tính số ngày thứ tư: =INT((A2-A1-WEEKDAY(A2-2,2)+8)/7)
Tính số ngày thứ năm: =INT((A2-A1-WEEKDAY(A2-3,2)+8)/7)
Tính số ngày thứ sáu: =INT((A2-A1-WEEKDAY(A2-4,2)+8)/7)
Tính số ngày thứ bảy: =INT((A2-A1-WEEKDAY(A2-5,2)+8)/7)
Tính số ngày chủ nhật: =INT((A2-A1-WEEKDAY(A2-6,2)+8)/7)
Và cũng từ đây, ta có thể suy ra nhiều công thức khác, chẳng hạn tìm ngày CHỦ NHẬT đầu tiên, ngày CHỦ NHẬT cuối cùng:
Ngày CHỦ NHẬT đầu tiên: = A1 - WEEKDAY(A1,2)+ 7
Ngày CHỦ NHẬT cuối cùng: = A2 - WEEKDAY(A2) + 1
Rất cám ơn bạn VuNgoc đã đưa ra 1 đề tài khá thú vị
Mến!
ANH TUẤN

Cám ơn bạn nhiều, 1 công thức đơn giản hiệu quả! }}}}}
Riêng ngày thứ 2 chỉnh thành =INT((A2-A1-WEEKDAY(A2-0,2)+8)/7) exxcel mới hiểu
 
Lần chỉnh sửa cuối:
Cám ơn bạn nhiều, 1 công thức đơn giản hiệu quả! }}}}}
Riêng ngày thứ 2 chỉnh thành =INT((A2-A1-WEEKDAY(A2-0,2)+8)/7) exxcel mới hiểu
thêm một cách mới cho excel 2010--->trở lên
đếm bao nhiêu ngày chủ nhật
Mã:
=$B1-$A1-NETWORKDAYS.INTL($A1,$B1,11,0)+1
với a1 là ngày bắt đầu
b1 là ngày kết thúc
thay đổi tham số từ 11--> 17 để tính các ngày còn lại--=0
 
Mình làm theo mặc định tính số ngày chủ nhật trong 1 tháng như sau, không biết có đúng không? Xin tham khảo ý kiến. (Cái này dành cho Excel 2007 trở xuống)
=INT(DAY("Ngày cuối"-WEAKDAY("Ngày cuối")+1)/7)+1
Giải thích:
1/ WEEKDAY("Ngày cuối") là lấy ra ngày cuối là thứ mấy?
2/ "ngày cuối"-WEAKDAY("Ngày cuối")+1 sẽ là ngày của chủ nhật cuối cùng
3/ INT(DAY("Ngày cuối"-WEAKDAY("Ngày cuối")+1)/7) sẽ là số ngày chủ nhật có trong 1 tháng nhưng chưa tính ngày chủ nhật cuối cùng nên ta phải +1 như công thức đã trình bày.
4/ Nếu phát sinh lỗi chưa logic xin các bạn cho ý kiến.
"Ngày cuối của tháng"=EOMONTH(TODAY();0)
"Ngày đầu của tháng"=EOMONTH(TODAY();-1)+1

Đối với Excel 2010 trở lên thì mọi việc quá đơn giản bằng cách dùng hàm
=NETWORKDAYS.INTL("Ngày đầu";"Ngày cuối";11)
 
bài viết rất hữu ích, cảm ơn cả nhà, rất nhiều người giỏi!
 
Web KT
Back
Top Bottom