0

试图建立一个工作日的季度日历(按节假日调整)。

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

有谁知道如何获得下一个工作日,如果下一个工作日在下个月返回最近的前一个工作日?

谢谢帕科

4

2 回答 2

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 的 ValueIfFalse 部分中包含嵌套 IF 的原因。它强制它到下一个工作日,然后是前一个工作日。

于 2012-08-16T19:37:43.903 回答
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
于 2012-12-29T21:18:33.833 回答