You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何缩短指定的Excel数组求和公式?新手求助

Excel数组求和公式优化方案

原公式逻辑回顾

你当前的公式对四组间隔10行的区域做重复判断:检查区域内是否包含"Bench"或"Press",满足条件时计算对应V列与W列的乘积之和,最后将四组结果累加。重复的结构导致公式冗余过长。

优化后的公式

方案1:适用于Excel 365/2021(支持动态数组)

=SUM(BYROW(ROW(1:4),LAMBDA(x,SUMPRODUCT(--((ISNUMBER(SEARCH("Bench",OFFSET($P$9:$U$11,(x-1)*10,0))))+(ISNUMBER(SEARCH("Press",OFFSET($P$9:$U$11,(x-1)*10,0))))),OFFSET($V$9:$V$11,(x-1)*10,0),OFFSET($W$9:$W$11,(x-1)*10,0)))))
  • 逻辑:用ROW(1:4)生成1-4的序号对应四组区域,OFFSET根据序号每次偏移10行批量获取目标区域,SUMPRODUCT计算单组符合条件的乘积和,最后用SUM汇总所有组结果。
  • 优势:无需重复编写多组区域逻辑,输入后直接回车即可生效。

方案2:适用于旧版本Excel(无动态数组支持)

=SUM(
    SUMPRODUCT(--((ISNUMBER(SEARCH("Bench",$P$9:$U$11)))+(ISNUMBER(SEARCH("Press",$P$9:$U$11)))),$V$9:$V$11,$W$9:$W$11),
    SUMPRODUCT(--((ISNUMBER(SEARCH("Bench",$P$19:$U$21)))+(ISNUMBER(SEARCH("Press",$P$19:$U$21)))),$V$19:$V$21,$W$19:$W$21),
    SUMPRODUCT(--((ISNUMBER(SEARCH("Bench",$P$29:$U$31)))+(ISNUMBER(SEARCH("Press",$P$29:$U$31)))),$V$29:$V$31,$W$29:$W$31),
    SUMPRODUCT(--((ISNUMBER(SEARCH("Bench",$P$39:$U$41)))+(ISNUMBER(SEARCH("Press",$P$39:$U$41)))),$V$39:$V$41,$W$39:$W$41)
)
  • 逻辑:用SUMPRODUCT替代原公式的SUM(IF(...)),--将逻辑判断结果转为1/0,直接与V、W列乘积相乘求和;无需按Ctrl+Shift+Enter执行数组计算。
  • 优势:比原公式更简洁,避免数组输入的操作失误,兼容性更强。

注意事项

  • 公式中的分隔符(逗号/分号)需根据Excel系统区域设置调整,中文系统默认用逗号,英文系统用分号。
  • SEARCH是不区分大小写的匹配,若需要区分大小写,替换为FIND即可。

内容的提问来源于stack exchange,提问作者Snorlax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:50:52