Excel Power Query如何依据当前表单元格值对另一表对应列求和
功能实现方案
方法1:SUM+INDIRECT公式法(轻量操作,适合数据量不大的场景)
操作步骤:
- 假设Query1表中,Category列的首个数据单元格为
A2,待填充Sum列的首个单元格为B2 - 直接在
B2单元格输入如下公式,下拉填充至所有行即可:
=SUM(INDIRECT("MergeAll!"&A2&":"&A2))
公式逻辑:
INDIRECT函数会自动把A2单元格的文本内容(比如「Check-in On Friday/saturday」)转换为Excel可识别的列引用,再通过SUM函数计算MergeAll表对应整列的总和,只要Category值和MergeAll的列名完全匹配就能正确返回结果。
注意事项:
- 如果MergeAll表的首行是表头不需要计入求和,可以自行调整公式的行范围,比如数据行是第2行到第2000行,公式修改为:
=SUM(INDIRECT("MergeAll!"&A2&"2:"&A2&"2000"))
- 需保证Query1的Category值和MergeAll的列名完全一致,包括大小写、空格、特殊符号,否则会返回错误值。
方法2:Power Query动态关联法(适合数据频繁更新、数据量较大的场景)
操作步骤:
- 先将MergeAll、Query1两张表都加载到Power Query编辑器:选中表数据区域 → 点击「数据」选项卡 → 选择「自表格/区域」
- 处理MergeAll查询:选中所有列 → 右键点击「逆透视列」,得到对应原列名的「属性」列、对应理赔数值的「值」列
- 对逆透视后的MergeAll查询做分组:按「属性」列分组,聚合操作选择「求和」,求和列为「值」,得到每个类别的总金额
- 切换到Query1查询,和分组后的MergeAll查询做合并查询:匹配列选择Query1的「Category」和MergeAll的「属性」,展开合并后的列即可得到对应类别的总和
- 最终将处理完成的Query1查询上载回原Excel表格即可,后续数据更新后只要点击「全部刷新」就能自动重算所有Sum值。
内容的提问来源于stack exchange,提问作者Junekuan
相关产品推荐
相关产品推荐

