【问题标题】:Simplify google sheet formula "SUM / INDEX / MATCH"简化谷歌表格公式“SUM / INDEX / MATCH”
【发布时间】:2020-11-14 05:33:21
【问题描述】:

我正在尝试使用 google sheet 创建一个花名册公式,以使用 INDEX/MATCH/SUM 来总结每周的工作时间。

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

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

【问题讨论】:

  • 分享您的工作表副本

标签: regex google-sheets sum google-sheets-formula array-formulas


【解决方案1】:

尝试:

=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))

【讨论】:

    【解决方案2】:

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

    试试这个(这将为您提供运行 B6:H22 的块的总小时数:

    =ArrayFormula(SUM(COUNTIF(B6:H22,$L$1:$L$8)*$M$1:$M$8))
    

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

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

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

    【讨论】:

    • 嗨,Erik,因为我想计算每个员工的每周小时数,所以我将您的公式更改为 B6:H6,这也是可行的。谢谢。
    • 是的,我并不清楚您的设置是什么或您想要完成什么。我很高兴您能够修改公式以满足您的实际需要。
    猜你喜欢
    • 2021-05-30
    • 2021-05-03
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多