在excel中的WORKDAY函数不接受Holiday参数范围的联合

=WORKDAY(42429, 1, A10:A15+A20:A22) 

此公式在Excel中不起作用,并提供#VALUE错误。 如果我只使用一个范围的假期参数 – 它工作得很好:

 =WORKDAY(42429, 1, A10:A15) 

两个范围都包含3月份的随机date(42429是2月的最后一天)。

我如何使它在不同的范围内工作,这样才能尊重他们两个,而不仅仅是他们中的一个?

我尝试创build一个小的VBA脚本来手动合并范围,然后使用该组合的结果作为WORKDAY函数的假日参数:

 Function Test1(holidays As Range, timeOffs As Range) As Long() Dim r() As Long Dim h As Range, t As Range Dim i As Integer i = 1 ReDim r(1 To holidays.Cells.Count + timeOffs.Cells.Count) For Each h In holidays.Cells r(i) = h.Value i = i + 1 Next h For Each t In timeOffs.Cells r(i) = t.Value i = i + 1 Next t Test1 = r End Function 

接着

 =WORKDAY(42429, 1, Test1(A10:A15, A20:A22)) 

然而这产生完全相同的结果。

我debugging了我的小脚本,我可以看到返回的对象是一个Long的数组,它具有我想要的所有值,但是Excel由于某种原因不喜欢这个脚本和它的输出,但仍然给我#VALUE错误。

任何提示都非常感谢!

尝试这个:

 =WORKDAY(startDate,1,SMALL((Rng1,Rng2,Rng3),ROW(INDIRECT("1:"&COUNT(Rng1,Rng2,Rng3))))) 

SMALL能够处理input的多个参数,并将单个数组作为输出。

从这里得到这个

我会在这里使用=Workday.Intl(startDate,endDate,[Weekend],[Holidays])文档,或者如果那不是由于旧版本=NETWORKDAYS(startDate,endDate,[Holidays])文档那里你可能不得不使用数组公式用Ctl + Shift + Enter确认