出于某种原因,VBA 和 PowerQuery / Power BI 不是一个选项。 鉴于此,我知道我需要的是可能的,我只是很难找到方法。
我有 4 张工作表。 一张工作表包含员工和日期(按周细分,例如 10/13、10/14 等)(如果我能弄清楚,请遵循示例)。 表 2 包含签到/签退数据,用于在表 1 中填写该员工在该日期的数字。该部分工作正常。 表 4 有假期,因此我们使用假期代码覆盖工作时间。 那部分工作得很好。 表 3 和休假时间是问题所在。表 3 包含员工列表和每个休假期间的单独条目。 问题是,它有总共花费的小时数、开始日期和结束日期,我需要将它们转换为给定日期的小时数,以便我可以使用假期代码和小时数填充表 1 上的该日期当天拍摄。
示例(出于隐私考虑,我将使用员工代码,而不是姓名,因为无论如何这都是我们的索引。
表 1:
员工ID | 10/8 | 10/9 | 10/10 |
---|---|---|---|
80332 | 8.00 | VAC24 | 8.00 |
第 4 页:
员工ID | 开始日期 | 结束日期 | 时间 |
---|---|---|---|
80332 | 10/9/24 | 10/10/24 | 16 |
80332 | 10/16/24 | 10/20/24 | 12 |
因此,我需要第 1 份表来说明 10/9 和 10/10 上的 VAC8
当前使用的公式将“Vac24”放入 10/9,但对于 10/10 或更高的值没有任何作用,如下所示(是的,它还做了很多其他事情):
=IF(AND(RIGHT($F80, 3)="(S)", COUNTIFS(Holidays!$A:$A, K$2)\>0), "HOL8", IF(SUMIFS(VacationImport!$F:$F, VacationImport!$B:$B, $E80, VacationImport!$D:$D, K$2, VacationImport!$H:$H, "Taken")\>0, CONCAT("VAC", SUMIFS(VacationImport!$F:$F, VacationImport!$B:$B, $E80, VacationImport!$D:$D, K$2)), IF(AND(RIGHT($F80, 3)="(S)", MOD(K$2, 7)\>1), 8, IF(H80="","", IF(SUMIFS(HJImport!$F:$F, HJImport!$C:$C, K$2, HJImport!$A:$A, $E80)\>0, SUMIFS(HJImport!$F:$F, HJImport!$C:$C, K$2, HJImport!$A:$A, $E80), IF(SUM(SUMIFS(TLImport!$G:$G, TLImport!$B:$B, $E80, TLImport!$L:$L, K$2), SUMIFS(TLImport!$H:$H, TLImport!$B:$B, $E80, TLImport!$L:$L, K$2))\>0, SUM(SUMIFS(TLImport!$G:$G, TLImport!$B:$B, $E80, TLImport!$L:$L, K$2), SUMIFS(TLImport!$H:$H, TLImport!$B:$B, $E80, TLImport!$L:$L, K$2)), 0))))))
有人可以帮我解决这个问题吗?
编辑:所以......我已经有了一些工作,但这是一个巨大的障碍。 有人可以帮我清理吗? 它还在开始时多拉了一天的时间,所以……并不完美。 这是:
=IF(AND(RIGHT($F189, 3)="(S)", COUNTIFS(Holidays!$A:$A, H$2)>0, $G189<(TODAY()-365)), "HOL8", IF(SUM(SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$N:$N, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$O:$O, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$P:$P, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$Q:$Q, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$R:$R, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$S:$S, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$T:$T, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$Q:$Q, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$R:$R, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$S:$S, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$T:$T, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$U:$U, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$V:$V, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$W:$W, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$X:$X, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$Y:$Y, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$Z:$Z, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AA:$AA, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AB:$AB, H$2, VacationImport!$AC:$AC, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AD:$AD, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AE:$AE, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AF:$AF, H$2, VacationImport!$AG:$AG, H$2))>0, CONCAT("VAC", SUM(SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$N:$N, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$O:$O, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$P:$P, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$Q:$Q, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$R:$R, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$S:$S, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$T:$T, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$Q:$Q, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$R:$R, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$S:$S, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$T:$T, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$U:$U, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$V:$V, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$W:$W, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$X:$X, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$Y:$Y, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$Z:$Z, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AA:$AA, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AB:$AB, H$2, VacationImport!$AC:$AC, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AD:$AD, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AE:$AE, H$2), SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E189, VacationImport!$H:$H, "Taken", VacationImport!$AF:$AF, H$2, VacationImport!$AG:$AG, H$2))), IF(AND(RIGHT($F189, 3)="(S)", MOD(H$2, 7)>1), 8, IF(E189="","", IF(SUMIFS(HJImport!$F:$F, HJImport!$C:$C, H$2, HJImport!$A:$A, $E189)>0, SUMIFS(HJImport!$F:$F, HJImport!$C:$C, H$2, HJImport!$A:$A, $E189), IF(SUM(SUMIFS(TLImport!$G:$G, TLImport!$B:$B, $E189, TLImport!$L:$L, H$2), SUMIFS(TLImport!$H:$H, TLImport!$B:$B, $E189, TLImport!$L:$L, H$2))>0, SUM(SUMIFS(TLImport!$G:$G, TLImport!$B:$B, $E189, TLImport!$L:$L, H$2), SUMIFS(TLImport!$H:$H, TLImport!$B:$B, $E189, TLImport!$L:$L, H$2)), 0))))))
我想通了,但这是一个巨大的障碍,所以任何优化它的帮助将不胜感激。 最终代码:
=IF(AND(RIGHT($F295, 3)="(S)", COUNTIFS(Holidays!$A:$A, H$2)>0, $G295<(TODAY()-365)), "HOL8", IF(SUM(
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$N:$N, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$O:$O, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$P:$P, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$Q:$Q, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken",VacationImport!$C:$C, "Vacation", VacationImport!$R:$R, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$S:$S, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$T:$T, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$U:$U, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$V:$V, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$W:$W, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken",VacationImport!$C:$C, "Vacation", VacationImport!$X:$X, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$Y:$Y, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$Z:$Z, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken",VacationImport!$C:$C, "Vacation", VacationImport!$AA:$AA, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AB:$AB, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AC:$AC, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AD:$AD, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AE:$AE, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AF:$AF, H$2))>0,
CONCAT("VAC", SUM(
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$N:$N, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$O:$O, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$P:$P, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$Q:$Q, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$R:$R, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$S:$S, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$T:$T, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$U:$U, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$V:$V, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$W:$W, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$X:$X, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$Y:$Y, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$Z:$Z, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AA:$AA, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AB:$AB, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AC:$AC, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AD:$AD, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AE:$AE, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AF:$AF, H$2))),
IF(AND(RIGHT($F295, 3)="(S)", MOD(H$2, 7)>1), 8, IF(E295="","", IF(SUMIFS(HJImport!$F:$F, HJImport!$C:$C, H$2, HJImport!$A:$A, $E295)>0, SUMIFS(HJImport!$F:$F, HJImport!$C:$C, H$2, HJImport!$A:$A, $E295), IF(SUM(SUMIFS(TLImport!$G:$G, TLImport!$B:$B, $E295, TLImport!$L:$L, H$2), SUMIFS(TLImport!$H:$H, TLImport!$B:$B, $E295, TLImport!$L:$L, H$2))>0, SUM(SUMIFS(TLImport!$G:$G, TLImport!$B:$B, $E295, TLImport!$L:$L, H$2), SUMIFS(TLImport!$H:$H, TLImport!$B:$B, $E295, TLImport!$L:$L, H$2)), 0))))))
我不确定你的庞大的 41 行公式,因为从
AND()
函数中包含的所有逻辑,嵌套在 IF()
函数中,我相信输出只能是 TRUE
或 FALSE
。
但是,假设它在现实中具有一定的基础,下面的部分
SUM(
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$N:$N, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$O:$O, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$P:$P, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$Q:$Q, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken",VacationImport!$C:$C, "Vacation", VacationImport!$R:$R, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$S:$S, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$T:$T, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$U:$U, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$V:$V, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$W:$W, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken",VacationImport!$C:$C, "Vacation", VacationImport!$X:$X, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$Y:$Y, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$Z:$Z, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken",VacationImport!$C:$C, "Vacation", VacationImport!$AA:$AA, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AB:$AB, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AC:$AC, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AD:$AD, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AE:$AE, H$2),
SUMIFS(VacationImport!$M:$M, VacationImport!$B:$B, $E295, VacationImport!$H:$H, "Taken", VacationImport!$C:$C, "Vacation", VacationImport!$AF:$AF, H$2))
由于它看起来是重复的,因此占据了公式长度的大部分,可以将其压缩为以下
SUMPRODUCT(VacationImport!M1:M1000*(VacationImport!B1:B1000=Sheet2!$E295)*(VacationImport!H1:H1000="Taken")*(VacationImport!C1:C1000="Vacation"),MMULT(N(VacationImport!N1:AF1000=H$2),ROW(1:19)^0))
这假设有 1,000 行数据集,因为全列引用不应与
SUMPRODUCT()
函数一起使用 - 如果您无法对数据集的实际最后一行进行硬编码,因为它可能是动态的,那么我建议您将其指定为Excel 表格,并“重新设计”公式以使用结构化引用。
请注意,如果您使用的是 Excel 2019 或更早版本,则缩写公式需要将较大的公式作为 数组公式 输入。
(如果您正在使用新版本的 Excel,那么考虑到重复,您一定应该探索 LET() 函数)
鉴于公式中固定单元格引用的数量,我想它将被复制到多个单元格 - 如果是这种情况,那么我建议仅在工作簿中的 1 个单元格中输入函数,并且然后在所有需要它的公式中引用该单元格,而不是
TODAY()
函数。