尝试使用以下方法:
=LET(
_Holidays, XLOOKUP(P5,H$5:N$5,H$6:N$14),
_StartDate, DATE(G$2,E$2,C$2),
_EndDate, DATE(G$3,E$3,C$3),
SUM((_Holidays>=_StartDate)*(_Holidays<=_EndDate)))
使用 BYROW()
一个也可以使用一个公式溢出输出:
=BYROW(P5:P11,LAMBDA(x,
LET(
_Holidays, XLOOKUP(x,H5:N5,H6:N14),
_StartDate, DATE(G2,E2,C2),
_EndDate, DATE(G3,E3,C3),
SUM((_Holidays>=_StartDate)*(_Holidays<=_EndDate)))))
或者 XLOOKUP()
也 FILTER()
可以使用
=BYROW(P5:P11,LAMBDA(x,
LET(
_Holidays, FILTER(H6:N14,H5:N5=x),
_StartDate, DATE(G2,E2,C2),
_EndDate, DATE(G3,E3,C3),
SUM((_Holidays>=_StartDate)*(_Holidays<=_EndDate)))))
基本上它是一行公式,我试图将其分解成几个部分以显示一些清晰度:
=LET(x, FILTER(H$6:N$14,H$5:N$5=P5),SUM((x>=DATE(G$2,E$2,C$2))*(x<=DATE(G$3,E$3,C$3))))
解释:
-
或
XLOOKUP()
提取假期列表 FILTER()
-
然后将其与
From:
和 To:
-
最后使用函数对乘积进行求和
SUM()
。