简化 google sheet 公式 "SUM / INDEX / MATCH"

Simplify google sheet formula "SUM / INDEX / MATCH"

我正在尝试使用 google sheet 创建一个花名册公式,使用 INDEX/MATCH/SUM.

来总结每周的值班时间

但是太长了,有什么办法简化公式吗?
另外,我发现“MATCH”无法识别空白单元格(N20),这也可以修复吗?

=IFERROR(SUM(INDEX($O:$O,MATCH(D17,$N:$N,0)),INDEX($O:$O,MATCH(E17,$N:$N,0)),INDEX($O:$O,AND(F17,$N:$N,0)),INDEX($O:$O,MATCH(G17,$N:$N,0)),INDEX($O:$O,MATCH(H17,$N:$N,0)),INDEX($O:$O,MATCH(I17,$N:$N,0)),INDEX($O:$O,MATCH(J17,$N:$N,0))),"Err")

尝试:

=ARRAYFORMULA(MMULT(IFERROR(REGEXREPLACE(UPPER(B6:H14), "^"&TEXTJOIN("$|^", 1, L1:L10)&"$",
 VLOOKUP(REGEXEXTRACT(UPPER(B6:H14), "^"&TEXTJOIN("$|^", 1, L1:L10)&"$"), L1:M10, 2*
 SIGN(ROW(A6:A14)), 0)&""), UPPER(B6:H14))*1, TRANSPOSE(COLUMN(B:H))^0))

Franco,既然你的 post 说你的最终目标是“总结每周的工作时间”,我认为这意味着你最终只需要一个数字。

试试这个(这会给你运行 B6:H22:

的区块的总小时数
=ArrayFormula(SUM(COUNTIF(B6:H22,$L:$L)*$M:$M))

如果您需要查看每个代码的细分,您可以使用:

=ArrayFormula({$L:$L,COUNTIF(B6:H22,$L:$L)*$M:$M})

只需将“B6:H22”替换为每个日历块的参考即可获得其他周的总和或细分。