=WORKDAY(42429, 1, A10:A15+A20:A22)
此公式在Excel中不起作用,并且出现#VALUE错误。如果我只为Holidays参数使用一个范围 - 它可以正常工作:
=WORKDAY(42429, 1, A10:A15)
两个范围都包含三月份的随机日期(42429是二月的最后一天)。
如何让它与单独的范围一起使用,以便它既能满足它们又不仅仅是其中之一?
我尝试创建一个小的VBA脚本来手动组合范围,然后使用该组合的结果作为WORKDAY函数的Holiday参数:
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))
然而,这会产生完全相同的结果。
我调试了我的小脚本,我可以看到返回的对象是一个Long的数组,它具有我想要的所有值,但是由于某种原因Excel不喜欢这个脚本及其输出,但仍然给了我#VALUE错误。
非常感谢任何提示!
答案 0 :(得分:1)
我会使用=Workday.Intl(startDate,endDate,[Weekend],[Holidays])
文档here,或者如果由于旧版=NETWORKDAYS(startDate,endDate,[Holidays])
文档Here而不存在,则可能必须使用Ctl + Shift的数组公式确认+输入
答案 1 :(得分:0)
试试这个:
=WORKDAY(startDate,1,SMALL((Rng1,Rng2,Rng3),ROW(INDIRECT("1:"&COUNT(Rng1,Rng2,Rng3)))))
SMALL能够处理输入的多个参数,并提供一个数组作为输出。
来自here