Excel中基于多条件的SUMIF分组求和需求咨询
实现关联分组求和的Excel公式方案
原始销售数据
| 物料(Material) | 区域(Region) | 销售额(Sales) |
|---|---|---|
| M1 | Region1 | 100 |
| M1 | Region2 | 200 |
| M1 | Region4 | 200 |
| M2 | Region3 | 150 |
| M3 | Region3 | 75 |
| M4 | Region6 | 200 |
| M5 | Region3 | 100 |
求和规则
- 同一物料对应不同区域的行归为一组,组内所有行的「求和(Sum)」列显示该物料的销售额总和(如M1的3行总和为500)
- 同一区域对应不同物料的行归为一组,组内所有行的「求和(Sum)」列显示该区域的销售额总和(如Region3的3行总和为325)
- 无关联匹配的单独行(物料仅对应一个区域,且该区域仅对应此物料),「求和(Sum)」列值与销售额列一致(如M4-Region6的求和值为200)
预期输出结果
| 物料(Material) | 区域(Region) | 销售额(Sales) | 求和(Sum) |
|---|---|---|---|
| M1 | Region1 | 100 | 500 |
| M1 | Region2 | 200 | 500 |
| M1 | Region4 | 200 | 500 |
| M2 | Region3 | 150 | 325 |
| M3 | Region3 | 75 | 325 |
| M4 | Region6 | 200 | 200 |
| M5 | Region3 | 100 | 325 |
实现公式
假设数据列对应关系:物料列=A列,区域列=B列,销售额列=C列,「求和(Sum)」列从D2单元格开始,使用以下公式并下拉填充:
=IF(COUNTIF($A:$A,A2)>1,SUMIF($A:$A,A2,$C:$C),IF(COUNTIF($B:$B,B2)>1,SUMIF($B:$B,B2,$C:$C),C2))
公式逻辑说明
- 先判断当前物料在A列的出现次数是否大于1:若是,用
SUMIF计算该物料的所有销售额总和 - 若物料仅出现1次,再判断当前区域在B列的出现次数是否大于1:若是,用
SUMIF计算该区域的所有销售额总和 - 若物料和区域均仅出现1次,直接返回当前行的销售额
内容的提问来源于stack exchange,提问作者Arvind Menon
相关产品推荐
相关产品推荐

