上一个工作日的Excel公式

时间:2014-06-05 13:52:38

标签: excel function

我有一个宏,其中询问用户日期,并打开与日期对应的文件并执行一些操作。但是,我没有手动输入日期,而是尝试编写一个excel函数来计算上一个工作日。这是因为我通常输入的日期对应于上一个工作日。

例如,如果今天是星期一,我想要上周的星期五日期 - 其余的工作日到星期五,那就是前一天。周末没有相应的文件。

我该怎么做?

4 个答案:

答案 0 :(得分:5)

=WORKDAY(TODAY(),-1)

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

有关该功能的完整说明,请参阅here

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

在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 =星期二等。

答案 3 :(得分:0)

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

然后只需格式化单元格即可显示