在构建季度日历时返回修改后的营业日期

时间:2012-08-16 17:34:55

标签: excel-2003

尝试建立工作日的季度日历(按假期调整)。

我正在使用= edate(A1,4),唯一的问题是此功能不适用于工作日。理想情况下,我会使用= workday(edate(A1,4),0,USD_Hols)包装公式,但似乎我不能只为公式添加“0”以返回下一个工作日。

是否有人知道如何获得下一个工作日,以及下个月的下一个工作日是否会返回最近的工作日?

由于 帕

2 个答案:

答案 0 :(得分:0)

我认为这可以根据您对评论的描述而有效。我不太清楚你在评论中的“前一个”是什么意思。下面,我假设它意味着A1,如果A1是工作日,或者A1之前的工作日,如果A1不是工作日:

=IF(MONTH(WORKDAY(A1,1,USD_Hols))=MONTH(A1),WORKDAY(A1,1,USD_Hols),WORKDAY(WORKDAY(A1,1,USD_Hols),0-1,USD_Hols))

我没有太多使用工作日功能。我注意到的一件事是,即使它不是工作日,天数的0参数似乎也会返回A1中的日期。这就是为什么我将嵌套的IF包含在主IF的ValueIfFalse部分中。它迫使它进入下一个工作日,然后是前一个工作日。

答案 1 :(得分:0)

您必须将工作表功能添加到Workday to Excel 2010

这是正确的:

Function NextBiz(d As Range, holidays As Range) As Date
    If WorksheetFunction.Weekday(d) = 7 Or WorksheetFunction.Weekday(d) = 1 Or WorksheetFunction.CountIf(holidays, d) > 0 Then
    NextBiz = WorksheetFunction.WorkDay(d, 1, holidays)
    Else: NextBiz = d
    End If
End Function