Excel:合并A、B列唯一组合并对应求和C列的方法求助
Excel合并列唯一组合并求和的解决方法
问题原因
你用SUMIF(CONCATENATE(A1:A6,B1:B6), D1, C1:C6)无效,核心原因是SUMIF的第一个参数必须是单元格区域,而CONCATENATE(A1:A6,B1:B6)返回的是单个拼接后的文本(不是可迭代的数组/区域),无法和D列的唯一值完成匹配。
解决方法
方法1:辅助列法(兼容所有Excel版本)
这是最直观的方案,适配所有版本的Excel:
- 新增一列(比如D列),输入拼接公式:
=A1&" "&B1,下拉填充到所有数据行 - 在F列生成唯一组合:Excel 365/2021可直接用
=UNIQUE(D1:D6);旧版Excel需用数组公式=INDEX(D:D,MATCH(0,COUNTIF(F$1:F1,D:D),0)),输入后按Ctrl+Shift+Enter确认,下拉直到出现#N/A停止 - 在G列对应位置输入求和公式:
=SUMIF(D:D, F1, C:C),下拉填充即可
方法2:无辅助列动态数组法(Excel 365/2021)
如果使用支持动态数组的Excel版本,可跳过辅助列直接完成需求:
- 生成唯一拼接值(比如D列):
=UNIQUE(A1:A6&" "&B1:B6) - 对应E列求和,用
BYROW+LAMBDA拆分匹配原列数据:
若使用Excel 365最新版本,还能更简洁:用=BYROW(D1#, LAMBDA(x, SUMIFS(C:C, A:A, LEFT(x, FIND(" ", x)-1), B:B, RIGHT(x, LEN(x)-FIND(" ", x)))))GROUPBY直接输出合并后的唯一值及对应求和结果:=GROUPBY(A1:A6&" "&B1:B6, C1:C6, SUM, 0, 1)
方法3:旧版Excel数组公式方案
针对无动态数组功能的旧版Excel,用数组公式实现:
- 生成唯一组合(D列):
输入后按=INDEX($A$1:$A$6&" "&$B$1:$B$6, MATCH(0, COUNTIF($D$1:D1, $A$1:$A$6&" "&$B$1:$B$6), 0))Ctrl+Shift+Enter确认,下拉直到出现#N/A停止。 - 对应求和(E列):
同样按=SUM(IF($A$1:$A$6&" "&$B$1:$B$6=D1, $C$1:$C$6, 0))Ctrl+Shift+Enter确认后下拉填充。
内容的提问来源于stack exchange,提问作者MerMer
相关产品推荐
相关产品推荐

