Excel每月最後一個工作天
要在Excel中找出每月最後一個工作日,你可以使用以下公式:
=DATE(YEAR(A1),MONTH(A1),DAY(A1))
其中,A1
是代表當前日期的單元格。這個公式會返回當前月的最後一天。
如果你想要找出當前月的最後一個工作日,你可能需要考慮當地的法定節假日。這通常需要一個包含所有法定節假日的數據庫或列表,並且需要寫一個複雜的公式或使用VBA腳本來檢查每個月的每一天是否是工作日。
如果你有一個包含法定節假日的列表,你可以使用以下公式來找出最後一個工作日:
=MAX(IF(WEEKDAY(A1:A1000,2)>5,A1:A1000))
這個公式假設你的法定節假日列表從A1
開始,並且包含1000個日期。2
是用來指定星期六和星期日為周末。這個公式會返回最大的工作日,即最後一個工作日。
如果你沒有法定節假日列表,你可以使用VBA腳本來生成一個,並且使用上述公式來找出最後一個工作日。以下是一個簡單的VBA腳本示例,用來生成法定節假日列表:
Sub CreateHolidayList()
Dim startDate As Date, endDate As Date, i As Integer
' 請輸入開始日期和結束日期
startDate = "2023-01-01"
endDate = "2023-12-31"
' 初始化一個空陣列
ReDim holidays(1 To 12) As Date
' 循環遍歷每個月份
For i = 1 To 12
' 計算當前月的最後一天
holidays(i) = DateSerial(Year(startDate), i + 1, 1) - 1
' 檢查當前月的每一天是否是法定節假日
If Weekday(holidays(i), vbSaturdayAndSunday) = vbSaturday Or _
Weekday(holidays(i), vbSaturdayAndSunday) = vbSunday Then
' 如果是周末,則將其添加到法定節假日列表中
holidays(i) = DateAdd("d", 1, holidays(i))
End If
Next i
' 將法定節假日列表輸出到工作表中
Range("A1").Resize(12, 1).Value = Application.Transpose(holidays)
End Sub
這個腳本會將法定節假日列表輸出到工作表的A1:L1範圍內。然後你可以使用上述公式來找出最後一個工作日。