前一个工作日的Excel公式

我有一个macros,其中要求用户的date,并打开相应的date的文件,并执行一些操作。 但是,而不是手动inputdate,我试图写一个Excel函数来计算以前的工作日。 这是因为我通常input的date对应于前一个工作日。

例如,如果今天是星期一,我想要上周的星期五date,星期五剩下的星期五就是前一天。 不会有对应于周末的文件。

我怎样才能做到这一点 ?

=WORKDAY(TODAY(),-1) 

这将在Excel中返回当天的序列号,只能在单元格中进行格式化。

看到这里的function的完整解释。

在Excel 2010或更高版本中试用此function:

 =IF ( WEEKDAY (A1, 16) > 3 , A1-1 , A1 - WEEKDAY (A1, 16) ) 

作为WEEKDAY的第二个参数添加16设置星期六= 1。

在VBA中:

 Public Function PreviousWeekDay(InputDate As Date) As Integer Dim Result As Integer Result = Weekday(InputDate, vbMonday) If Result = 6 Or Result = 7 Or Result = 1 Then Result = 5 Else Result = Result - 1 End If PreviousWeekDay = Result End Function 

返回1 =星期一,2 =星期二等

 =IF(WEEKDAY(NOW()-2)>5,NOW()-WEEKDAY(NOW()-6),NOW()-1) 

然后只是格式化单元格,但是你想显示它