Chỉ giúp hàm tính ngày

Liên hệ QC

bigbigworld

Thành viên mới
Tham gia
18/7/06
Bài viết
20
Được thích
5
Ví dụ hôm nay là ngày 04/12/07,mình muốn tính sau 30 ngày sau là ngày nào, nhưng mà trừ những ngày chủ nhật ra.
Mong được các bạn giúp đỡ.
 
thường trong 30 ngày sẽ có 4 ngày chủ nhật vì vậy bạn cứ lập công thức +34 là được
Vd: ô A1 chứa ngày 04/12/2007 -> thì ô B1 (chứa ô cần tính) có công thức: =A1+34
 
Liệu có chắc chắn A1 + 34 ko rơi vào ngày chủ nhật ko nhỉ?...
Còn bạn gì đó cho hỏi: nếu như 30 ngày sau rơi vào ngày chủ nhật thì bạn muốn lấy ngày nào? Ngày thứ 29 hay ngày thứ 31?
Mà dù lấy ngày nào đi chăng nữa thì chỉ IF 1 phát là xong chứ gì... Tôi lấy ví dụ bạn muốn tìm ngày thứ 30 tính từ ngày cho trước, nếu rơi vào ngày chủ nhật thì lấy trước đó 1 ngày.. ta có công thức sau:
=IF(Weekday(A1+30)=1,A1+29,A1+30)
Chỉ đơn giản vậy thôi
ANH TUẤN
 
Cứ cộng vô tư đi kết quả =1 là CN, 2 là thứ hai,...7 là thứ 7.Muốn hiện là chữ thì dùng IF cũng được hay VLOOKUP cũng được.
=WEEKDAY(date+number)=1 đến 7 rồi lại vòng tiếp 1-7.**~****~****~**.
 
Theo mình thấy câu hỏi của bạn Bigbigworld có 2 cách hiểu :
  1. Bạn muốn biết 30 ngày sau là ngày nào, 30 ngày này chỉ tính ngày thường không phải ngày chủ nhật, như vậy sẽ có 5 ngày chủ nhật được bỏ qua không tính --> =IF(WEEKDAY(A1+34)<>1,A1+34,A1+35) với ô A1 là ngày bạn chọn trước.
  2. Bạn muốn biết 30 ngày sau là ngày nào và ngày đó không phải là ngày chủ nhật, 30 ngày tính cả ngày thường và ngày chủ nhật -->
    * Nếu sau 30 ngày là chủ nhật sẽ chuyển sang chọn thứ 2 kế:
    =IF(WEEKDAY(A1+30)<>1,A1+30,A1+31)
    * Nếu sau 30 ngày là chủ nhật sẽ chuyển sang chọn lại thứ 7 trước:
    =IF(WEEKDAY(A1+30)<>1,A1+30,A1+29)
 
Lần chỉnh sửa cuối:
Dùng hàm tự tạo để thẩm định!

Mình dùng vòng lặp 30 lần cho 1 giá trị ngày nhận vô, như sau

PHP:
Option Explicit

Function Sau30Ngay(Optional Dat As Date) As Date
 Dim iJ As Byte
 If Dat = 0 Then Dat = Date
 For iJ = 1 To 30
    If Weekday(Dat) = 1 Then
        Dat = Dat + 2
    Else
        Dat = Dat + 1
    End If
 Next iJ
 Sau30Ngay = Dat
End Function
Kết quả theo file đính kèm;
Và từ kết quả trên excel, mình rút ra kết luận: khi & chỉ khi nào ngày bắt đầu tính là thứ hai thì cộng thêm 34 ngày, còn lại phải cộng thêm 35 ngày;
Từ đó mình có hàm sau & mong các bạn cho í kiến!
Chú í: Các hàm này xài kiểu ngày của bọn Mẽo!

Mã:
Function BaMuoiSau(Optional Dat As Date) As Date
 If Dat = 0 Then Dat = Date
 If Weekday(Dat) = 2 Then
    BaMuoiSau = Dat + 34
 Else
    BaMuoiSau = Dat + 35
 End If
End Function
Và nếu các bạn cho rằng kết luận của tôi là đúng, khi đó đề tài này được giải quyết bằng hàm Excel, như sau:
=IF( WEEKDAY (A5 )= 2 ; 34 ; 35) + A5
 

File đính kèm

Lần chỉnh sửa cuối:
Đừng nóng bác Tuấn ơi vì có thể Bigbigworld hỏi vào ngày 04/12 thì 30 ngày sau mới vào xem anh em mình làm thế nào /*-*/ , mà không biết có tính ngày chủ nhật không nữa """:::":\
 
tệ thật, suy nghĩa riết mà không ra nhưng khi thấy được lời giải thì ....
Cảm ơn viendo, SA_DQ, cảm ơn GPE
 
Web KT

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

Back
Top Bottom