我如何编写一个转换小时的公式,但前提是日期在其他表中存储的特定范围内?

问题描述 投票:0回答:1

出于某种原因,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))))))
excel excel-formula
1个回答
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 个单元格中输入

volatile TODAY()

 函数,并且然后在所有需要它的公式中引用该单元格,而不是 
TODAY()
 函数。

© www.soinside.com 2019 - 2024. All rights reserved.