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

如何在SUMPRODUCT公式中使用行列条件范围而非单个单元格?

Excel多行列条件筛选求和问题

数据表格

ABCDEFGHI
1initialtested202320242025Row Criteria
2Brand A70yes5007060initial
3Brand A45yes100473002024
4Brand A20yes80021200
5Brand B30yes9056150
6Brand C56no45700790
7Brand C84no60015040Result
8Brand D70yes90090980
9Brand D34yes125854726
10Brand D125yes70860614
11Brand D14yes84225085
12Brand E64no300324450

需求说明

  • 行条件:筛选D列为yes的行(对应表格中H2:H3应为行筛选条件,实际有效条件为D列=yes)
  • 列条件:筛选列标题属于I2:I3(initial、2024)的列
  • 预期结果(单元格I7):(70+45+20+30)+(70+47+21+56) = 359

原公式问题

尝试的SUMPRODUCT公式返回0,核心错误是行列条件匹配逻辑颠倒,且多条件“或”逻辑未正确实现:

=SUMPRODUCT(IFERROR(IF(H2="",1,(B1:F1=H2))*IF(H3="",1,(B1:F1=H3))*IF(I2="",1,(A2:A12=I2))*IF(I3="",1,(A2:A12=I3))*(B2:F12),0))

解决方案

方案1:基础多条件求和公式

直接实现行(D列=yes)+列(标题在I2:I3)的筛选求和:

=SUMPRODUCT(--(D2:D12="yes"),--(ISNUMBER(MATCH(C1:F1,I2:I3,0))),C2:F12)

逻辑说明:

  1. --(D2:D12="yes"):将D列是否为yes转换为1/0数组,标记符合条件的行
  2. --(ISNUMBER(MATCH(C1:F1,I2:I3,0))):将列标题是否在I2:I3中转换为1/0数组,标记符合条件的列
  3. SUMPRODUCT自动匹配行列维度,对符合双条件的单元格求和

方案2:支持空条件的通用写法

如果需要支持条件区域有空值(空值代表不限制该条件),可以使用:

=SUMPRODUCT(
    --(IF(COUNTA(H2:H3)=0,TRUE,D2:D12=H2:H3)),
    --(IF(COUNTA(I2:I3)=0,TRUE,ISNUMBER(MATCH(C1:F1,I2:I3,0)))),
    C2:F12
)

逻辑说明:

  • COUNTA(H2:H3)=0判断行条件区域是否为空,为空则所有行都符合条件
  • COUNTA(I2:I3)=0判断列条件区域是否为空,为空则所有列都符合条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:45:01