Excel - 将周日开始日期作为公式

时间:2017-02-10 11:43:50

标签: excel excel-vba excel-formula vba

我将此功能保存为宏:

Function getWeekdayStartDate(ActualDate As Date) As Date
    Dim WeekdayStartDate As Date
    WeekdayStartDate = DateValue(DateAdd("d", -Weekday(ActualDate, vbFriday) + 1, ActualDate))
    getWeekdayStartDate = WeekdayStartDate
End Function

它给了我一个日期,这是会计期间的第一天有点 本周的第一天不是星期一,也就是星期五。

我试过这些公式:

=DATE(2016; 6; 1)-WEEKDAY(DATE(2016; 6; 1)-6)
=DATE(2016;6;24)+1-WEEKDAY(DATE(2016;6;24);15)

得到这个日期,但没有运气。

如何将此功能转换为excel公式?

2 个答案:

答案 0 :(得分:4)

如果你只是希望你的公式得到星期五最接近指定日期的日期(但总是在之前),那么你几乎用你的第二个公式得到它,你只需要在公式的第二部分加1 :

=DATE(2016;6;24)+1-WEEKDAY(DATE(2016;6;24)+1;16)

答案 1 :(得分:2)

WORKDAY.INTL(Start_date,Days,Optional Weekend,Optional Holidays)与标准WORKDAY(Start_date,Days,Optional Holidays)的不同之处在于,您可以指定不同的周末天,包括反映自定义工作周的字符串< /强>

在B2中使用

=WORKDAY.INTL(A2,1,"1111011")

A2有日期,1下周五返回,-1返回上周五。在1111011字符串中,1表示从星期一开始的非工作日,而0表示工作日 - 在这种情况下是星期五。