如何在Google Sheets中按A-C列重复行汇总D列数据?
Google Sheets 多列匹配求和解决方案
需求:当A、B、C三列内容完全相同时,对对应D列的数值求和,结果填充到每行的E列(参考示例表格的E列效果)。
原尝试公式问题:=SUM(filter(D:D;COUNTIF(A2:A&B:B&C:C;A2:A&B:B&C:C)>1))
该公式仅能汇总所有重复组的D列数值总和,无法区分不同的A/B/C组合组别,不能实现每行对应组的求和。
解决方案1:逐行填充公式(简单直观)
在E2单元格输入以下公式,下拉填充至所有行:=SUMIFS(D:D, A:A, A2, B:B, B2, C:C, C2)
原理:SUMIFS是多条件求和函数,指定求和区域为D列,同时设置三个匹配条件:A列等于当前行A2的值、B列等于当前行B2的值、C列等于当前行C2的值,最终返回所有符合条件的D列数值之和,完美匹配需求。
解决方案2:数组公式(一键填充所有行)
如果不想手动下拉填充,可在E2单元格输入以下数组公式(Google Sheets会自动识别并生效):=BYROW(A2:C6, LAMBDA(row, SUMIFS(D:D, A:A, INDEX(row,1), B:B, INDEX(row,2), C:C, INDEX(row,3))))
原理:BYROW函数遍历A2:C6的每一行,通过LAMBDA提取当前行的A、B、C值,再用SUMIFS计算对应组的D列总和,一次性生成所有行的结果。
示例数据验证
| A | B | C | D | E |
|---|---|---|---|---|
| 木瓜 | 2022/10/10 | 500 | 42 | 42 |
| 木瓜 | 2022/12/15 | 550 | 30 | 59 |
| 木瓜 | 2022/12/15 | 550 | 29 | 59 |
| 菠萝 | 2022/11/16 | 400 | 55 | 55 |
| 菠萝 | 2022/11/09 | 400 | 63 | 78 |
| 菠萝 | 2022/11/09 | 400 | 15 | 78 |
内容的提问来源于stack exchange,提问作者Caleb W.
相关产品推荐
相关产品推荐

