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

如何在Power Query中计算同年度不同类型行的数值之和?

在Power Query中实现年度分组计算(含自定义函数)

方法一:先转成宽表(匹配你的思路)

这就是你提到的类透视操作,完全可以实现:

  1. 加载原始数据到Power Query后,选中Year列
  2. 点击顶部菜单栏的「转换」→「透视列」
  3. 在弹窗中:
    • 值列选择Value
    • 列名选择Type
    • 聚合函数选择「不要聚合」(因为每个Year+Type组合唯一,无重复值)
  4. 确定后即可得到目标宽表:
    YearAB
    2022135
    20231136
    2024922
  5. 后续可添加自定义列完成计算:点击「添加列」→「自定义列」,输入公式:[A] + [B],重命名列即可。

方法二:直接分组求和(更高效,无需转宽表)

如果只需要最终的年度合计,不用转宽表,直接分组即可:

  1. 加载数据后,选中Year列
  2. 点击「转换」→「分组依据」
  3. 在分组设置中:
    • 分组依据保持Year
    • 新列名设为Value A + Value B
    • 操作选择「求和」,列选择Value
  4. 确定后直接得到目标表格,一步到位。

进阶:替换为自定义函数

如果需要复杂的自定义计算逻辑(比如A*1.5 + B/2这类),可以通过自定义函数实现:

步骤1:创建自定义函数

在Power Query编辑器中,点击「主页」→「高级编辑器」,在现有代码前添加以下函数定义:

fn_CustomCalculation = (groupData as table) as number =>
let
    // 从分组数据中提取A和B的值
    valA = Table.SelectRows(groupData, each [Type] = "A")[Value]{0},
    valB = Table.SelectRows(groupData, each [Type] = "B")[Value]{0},
    // 自定义计算逻辑,可按需修改
    customResult = valA * 1.5 + valB / 2
in
    customResult

步骤2:调用函数分组计算

回到分组依据操作:

  1. 选中Year列,点击「分组依据」
  2. 分组依据选Year,新列名自定义(比如Custom Result)
  3. 操作选择「自定义」,输入公式:fn_CustomCalculation([All Rows])
  4. 确定后即可得到自定义计算的结果。

关键说明

Power Query是基于集合/列表操作的,不需要引用特定单元格,通过分组后获取同组内的所有行数据,再筛选、提取对应Type的值即可完成计算,完美解决你提到的“无法引用其他行”的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:25:09