đặt hàm gì để tính tuần thứ mấy trong năm bất kỳ

Liên hệ QC
Thử cái này xem nhé
(Cách này là mình được anh Hai Lúa Miền Tây hướng dẫn), bạn thử áp dụng xem nhé.

Giả sử bạn gõ tại ô C2 thử là 12 (tuần 12) ô E3 bạn gõ năm, giả sử là 2013, thì tại ô F3 kết quả ra là 3/3 (tuần 3 tháng 3 năm 2013).

Không biết có đúng ý bạn không.

Mã:
Public Function WeekStart(WhichWeek As Integer, WhichYear As Integer) As Date
    WeekStart = YearStart(WhichYear) + ((WhichWeek - 1) * 7)
End Function

Mã:
Public Function YearStart(WhichYear As Integer) As Date
Dim WeekDay As Integer
Dim NewYear As Date
NewYear = DateSerial(WhichYear, 1, 1)
WeekDay = (NewYear - 2) Mod 7 'Generate weekday index where Monday = 0
If WeekDay < 4 Then
    YearStart = NewYear - WeekDay
Else
    YearStart = NewYear - WeekDay + 7
End If
End Function

File đính kèm
 

File đính kèm

  • tinh thu ngay thang trong nam bat ky.rar
    55.9 KB · Đọc: 47
Lần chỉnh sửa cuối:
Thử cái này xem nhé
(Cách này là mình được anh Hai Lúa Miền Tây hướng dẫn), bạn thử áp dụng xem nhé.

Giả sử bạn gõ tại ô C2 thử là 12 (tuần 12) ô E3 bạn gõ năm, giả sử là 2013, thì tại ô F3 kết quả ra là 3/3 (tuần 3 tháng 3 năm 2013).

Không biết có đúng ý bạn không.

Mã:
Public Function WeekStart(WhichWeek As Integer, WhichYear As Integer) As Date
    WeekStart = YearStart(WhichYear) + ((WhichWeek - 1) * 7)
End Function

Mã:
Public Function YearStart(WhichYear As Integer) As Date
Dim WeekDay As Integer
Dim NewYear As Date
NewYear = DateSerial(WhichYear, 1, 1)
WeekDay = (NewYear - 2) Mod 7 'Generate weekday index where Monday = 0
If WeekDay < 4 Then
    YearStart = NewYear - WeekDay
Else
    YearStart = NewYear - WeekDay + 7
End If
End Function

File đính kèm
với hàm tự tạo này tôi thấy dùng công thức cũng được:
Mã:
=DATE($E$3,1,1)-WEEKDAY(DATE($E$3,1,1))+2+(C3-(WEEKDAY(DATE($E$3,1,1))<4))*7
Hoặc có thể đặt 1 name:
Mã:
FirstDate =DATE($E$3,1,1)
Và công thức sửa thành:
Mã:
=FirstDate-WEEKDAY(FirstDate)+2+(C3-(WEEKDAY(FirstDate)<4))*7
 
Web KT
Back
Top Bottom