Tìm một ngày trong một khoảng thời gian

Liên hệ QC

chamnv

Thành viên mới
Tham gia
14/5/08
Bài viết
15
Được thích
1
Em có một vấn đề với cái công thức excel như này. Các bác xem giúp em với nhé!
Đầu vào:
+ Cho một khoảng thời gian trong tháng ( ví dụ từ ngày 01-> 30).
+ Ngày giao dịch: Một ngày trong khoảng thời gian trên
+ Hình thức công nợ: Công nợ 07 ngày (07); Công nợ 05 ngày (05)....

Đầu ra:
+ Hạn thanh toán sơ bộ = Ngày giao dịch + Thời gian cho công nợ ( hình thức công nợ)
+ Ngày phải thanh toán = Hạn thanh toán sơ bộ - Các ngày T7 và CN trong khoảng thời gian giữa ngày giao dịch và Hạn thanh toán sơ bộ.

Hiện tại thì em có thể tìm được các ngày T7, CN nếu như Ngày thanh toán sơ bộ đó rơi đúng vào T7 hoặc CN.

Bây giờ em muốn là: Làm cách nào để tìm được tất cả Các ngày T7 và CN trong khoảng thời gian giữa ngày giao dịch và Hạn thanh toán sơ bộ ở trên
 
Em có một vấn đề với cái công thức excel như này. Các bác xem giúp em với nhé!
Đầu vào:
+ Cho một khoảng thời gian trong tháng ( ví dụ từ ngày 01-> 30).
+ Ngày giao dịch: Một ngày trong khoảng thời gian trên
+ Hình thức công nợ: Công nợ 07 ngày (07); Công nợ 05 ngày (05)....

Đầu ra:
+ Hạn thanh toán sơ bộ = Ngày giao dịch + Thời gian cho công nợ ( hình thức công nợ)
+ Ngày phải thanh toán = Hạn thanh toán sơ bộ - Các ngày T7 và CN trong khoảng thời gian giữa ngày giao dịch và Hạn thanh toán sơ bộ.

Hiện tại thì em có thể tìm được các ngày T7, CN nếu như Ngày thanh toán sơ bộ đó rơi đúng vào T7 hoặc CN.

Bây giờ em muốn là: Làm cách nào để tìm được tất cả Các ngày T7 và CN trong khoảng thời gian giữa ngày giao dịch và Hạn thanh toán sơ bộ ở trên
bạn tham khảo file đính kèm sẽ rõ
 

File đính kèm

  • hạn thanh toán.xls
    20.5 KB · Đọc: 213
Em có một vấn đề với cái công thức excel như này. Các bác xem giúp em với nhé!
Đầu vào:
+ Cho một khoảng thời gian trong tháng ( ví dụ từ ngày 01-> 30).
+ Ngày giao dịch: Một ngày trong khoảng thời gian trên
+ Hình thức công nợ: Công nợ 07 ngày (07); Công nợ 05 ngày (05)....

Đầu ra:
+ Hạn thanh toán sơ bộ = Ngày giao dịch + Thời gian cho công nợ ( hình thức công nợ)
+ Ngày phải thanh toán = Hạn thanh toán sơ bộ - Các ngày T7 và CN trong khoảng thời gian giữa ngày giao dịch và Hạn thanh toán sơ bộ.

Hiện tại thì em có thể tìm được các ngày T7, CN nếu như Ngày thanh toán sơ bộ đó rơi đúng vào T7 hoặc CN.

Bây giờ em muốn là: Làm cách nào để tìm được tất cả Các ngày T7 và CN trong khoảng thời gian giữa ngày giao dịch và Hạn thanh toán sơ bộ ở trên
Trươc hết, cung cấp cho bạn cái này:
anhtuan1066 đã viết:
Công thức để tìm tất cả các ngày thứ Bảy nằm giữa hai khoảng thời gian: =INT((Y-X-WEEKDAY(Y-5, 2)+8)/7)

Công thức để tìm tất cả các ngày Chủ Nhật nằm giữa hai khoảng thời gian: =INT((Y-X-WEEKDAY(Y-6, 2)+8)/7)

Với X = ngày đầu (ngày giao dịch); Y = ngày cuối (hạn thanh toán sơ bộ)​

Sau nữa, cho tôi hỏi: Bạn nói là "trừ đi", có nghĩa là "không tính", hay là "vẫn tính"? Bởi vì tôi nghĩ rằng, có 2 khả năng xảy ra:
  • Nếu ngày thanh toán rơi vào thứ Bảy hoặc Chủ Nhật, thì phải thanh toán vào thứ Sáu trước đó (vì để đến thứ Hai thì quá hạn thanh toán)

  • Nếu ngày thanh toán rơi vào thứ Bảy hoặc Chủ Nhật, thì được thanh toán vào thứ Hai sau đó (chấp nhận quá hạn thanh toán)
Vậy, công ty của bạn chọn giải pháp nào?
 
Lần chỉnh sửa cuối:
Trươc hết, cung cấp cho bạn cái này:

Sau nữa, cho tôi hỏi: Bạn nói là "trừ đi", có nghĩa là "không tính", hay là "vẫn tính"? Bởi vì tôi nghĩ rằng, có 2 khả năng xảy ra:
  • Nếu ngày thanh toán rơi vào thứ Bảy hoặc Chủ Nhật, thì phải thanh toán vào thứ Sáu trước đó (vì để đến thứ Hai thì quá hạn thanh toán)
  • Nếu ngày thanh toán rơi vào thứ Bảy hoặc Chủ Nhật, thì được thanh toán vào thứ Hai sau đó (chấp nhận quá hạn thanh toán)
Vậy, công ty của bạn chọn giải pháp nào?
Trước hết, cảm ơn bác đã trả lời em. Bên công ty em sẽ chọn giải pháp thứ 2:
- Nếu ngày thanh toán rơi vào thứ Bảy hoặc Chủ Nhật, thì được thanh toán vào thứ Hai sau đó (chấp nhận quá hạn thanh toán).
Bởi T7, CN mặc định là khách hàng nghỉ, không làm việc nên sẽ không tính. ( tức là trong công thức phải cộng thêm)

Nhưng em thử test với công thức ở trên thì nó vẫn chưa chạy đúng ạ
Các bác xem giúp em trong file đính kèm nhé!
Cột A: Ngày giao dịch
Cột B: Hình thức công nợ
Cột C: Hạn thanh toán sơ bộ
Cột D: Ngày phải thanh toán
=INT((C2-A2-WEEKDAY(C2-5,2)+8)/7)+INT((C2-A2-WEEKDAY(C2-6,2)+8)/7)+C2

Nếu như ngày phải thanh toán, giao dịch rơi vào T7 hoặc CN thì nó không chạy đúng!

( Em khổng thể up cái file excel lên diễn đàn được. Bác Mod xem giúp em với ạ)
 
Bạn có thể nói lại yêu cầu của bạn ko ?
Nếu như chỉ là để tìm ngày phải thanh toán = hạn thanh toán sơ bộ + các ngày thứ 7, chủ nhật trong khoảng giữa ngày giao dịch và hạn thanh toán sơ bộ thì công thức đó hoàn toàn đúng.
Thường thì mình ko thấy nta trừ đi tất cả các ngày thứ 7 và chủ nhật trong khoảng giữa 2 ngày đâu; chỉ thấy nếu hạn thanh toán sơ bộ là thứ 7 thì + 2, nếu là chủ nhật thì + 1, nếu ko thì ngày thanh toán = hạn thanh toán sơ bộ. Bạn xem kỹ lại nhé !
Chúc thành công !
:D - Tiện đây mọi người cho em hỏi, có thể dùng hàm gì để biết được 1 ngày bất kỳ là thứ mấy trong tuần không ạ ?
 
Lần chỉnh sửa cuối:
Cột A: Ngày giao dịch
Cột B: Hình thức công nợ
Cột C: Hạn thanh toán sơ bộ
Cột D: Ngày phải thanh toán
=INT((C2-A2-WEEKDAY(C2-5,2)+8)/7)+INT((C2-A2-WEEKDAY(C2-6,2)+8)/7)+C2

Nếu như ngày phải thanh toán, giao dịch rơi vào T7 hoặc CN thì nó không chạy đúng!

( Em khổng thể up cái file excel lên diễn đàn được. Bác Mod xem giúp em với ạ)
Bạn thử dùng công thức này xem
Mã:
=INT((C2-A2-WEEKDAY(C2-5,2)+8)/7)+INT((C2-A2-WEEKDAY(C2-6,2)+8)/7)+C2+CHOOSE(WEEKDAY(INT((C2-A2-WEEKDAY(C2-5,2)+8)/7)+INT((C2-A2-WEEKDAY(C2-6,2)+8)/7)+C2),1,0,0,0,0,0,2)
Công thức hơi dài chút, đấy là nếu tính luôn kết quả vào cột D, nếu tính kết quả vào cột E thì tại cột E công thức sẽ dễ xem hơn là thế này
Mã:
=D2+CHOOSE(WEEKDAY(D2),1,0,0,0,0,0,2)
 
Bạn có thể nói lại yêu cầu của bạn ko ?
Nếu như chỉ là để tìm ngày phải thanh toán = hạn thanh toán sơ bộ + các ngày thứ 7, chủ nhật trong khoảng giữa ngày giao dịch và hạn thanh toán sơ bộ thì công thức đó hoàn toàn đúng.
Thường thì mình ko thấy nta trừ đi tất cả các ngày thứ 7 và chủ nhật trong khoảng giữa 2 ngày đâu; chỉ thấy nếu hạn thanh toán sơ bộ là thứ 7 thì + 2, nếu là chủ nhật thì + 1, nếu ko thì ngày thanh toán = hạn thanh toán sơ bộ. Bạn xem kỹ lại nhé !
Chúc thành công !
:D - Tiện đây mọi người cho em hỏi, có thể dùng hàm gì để biết được 1 ngày bất kỳ là thứ mấy trong tuần không ạ ?
Là cái hàm WEEKDAY mà bạn thấy cứ nói tới nói lui trong topic này đó.
 
Nó vẫn bị sai khác 01 ngày.
Các bác thử giúp em xem nhé!
Nếu ngày giao dịch là 18/10/2008; hình thức công nợ: 05 ngày thì đúng thời gian phải thanh toán ( đã trừ đi CN, T7) nó sẽ chỉ là 24/10/2008.
Hiện tại công thức sẽ hiển thị là ngày 25/10/2008.
Các bác test thêm một số trường hợp với Hình thức công nợ khác nhau sẽ thấy rõ sự sai khác này.

Em đưa ra giải pháp -01 ngày đi nhưng một số trường hợp sẽ thiếu đi 01 ngày.
Ví dụ như khi hình thức công nợ là 07 ngày. :( nhức đầu quá.

Có bác tư vấn cho em là lập danh sách các ngày trong năm
ví dụ như:
01/01/2008 vào T2 thì là 1
02/01/2008 vào T3 thì là 1
03/01/2008 vào T4 thì là 1
04/01/2008 vào T5 thì là 1
05/01/2008 vào T6 thì là 1
06/01/2008 vào T7 thì là 0
07/01/2008 vào CN thì là 0
--> cứ làm 1 bảng này cho cả năm
( nếu làm cách này thì sẽ tính đc cả các ngày nghỉ lễ dương lịch)
sau đó tính toán số ngày rơi vào CN và T7 nhưng thực sự em chưa hiểu được cách làm cụ thể của cách này.
Các bác giúp em với ạ
 
Các bác cho hỏi ý nghĩa công thức này:=INT((Y-X-WEEKDAY(Y-6, 2)+8)/7)
 
Nó vẫn bị sai khác 01 ngày.
Các bác thử giúp em xem nhé!
Nếu ngày giao dịch là 18/10/2008; hình thức công nợ: 05 ngày thì đúng thời gian phải thanh toán ( đã trừ đi CN, T7) nó sẽ chỉ là 24/10/2008.
Hiện tại công thức sẽ hiển thị là ngày 25/10/2008.
Các bác test thêm một số trường hợp với Hình thức công nợ khác nhau sẽ thấy rõ sự sai khác này.

Em đưa ra giải pháp -01 ngày đi nhưng một số trường hợp sẽ thiếu đi 01 ngày.
Ví dụ như khi hình thức công nợ là 07 ngày. :( nhức đầu quá.

Có bác tư vấn cho em là lập danh sách các ngày trong năm
ví dụ như:
01/01/2008 vào T2 thì là 1
02/01/2008 vào T3 thì là 1
03/01/2008 vào T4 thì là 1
04/01/2008 vào T5 thì là 1
05/01/2008 vào T6 thì là 1
06/01/2008 vào T7 thì là 0
07/01/2008 vào CN thì là 0
--> cứ làm 1 bảng này cho cả năm
( nếu làm cách này thì sẽ tính đc cả các ngày nghỉ lễ dương lịch)
sau đó tính toán số ngày rơi vào CN và T7 nhưng thực sự em chưa hiểu được cách làm cụ thể của cách này.
Các bác giúp em với ạ


Trong bài này bạn muốn tính số ngày từ ngày bất đầu đến ngày đáo hạn , nhưng ko tính thứ 7 và chủ nhật và những ngày lễ bạn hãy dung hàm này : HanTT(ngay DG, Ngay CN)


Public Function HanTT(tg1 As Date, Ncn As Byte) As Date
Dim i, cn As Integer
cn = 0
For i = tg1 To tg1 + Ncn Step 1
If Weekday(i, vbSunday) = 1 Then
cn = cn + 1
End If
Next i
HanTT = tg1 + Ncn - cn * 2 (nếu muốn chỉ trừ chủ nhật thôi thì bỏ *2 di là xong)
End Function


View attachment hạn thanh toán.xls
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom