如何在Power Query中通过分组与平均值实现行除法计算?
Power Query 实现分组计算:EU列C值除以同组CA列C的平均值
步骤1:导入数据到Power Query
打开Excel,选中目标表格,点击数据选项卡→从表格/范围,将数据导入Power Query编辑器。
步骤2:计算每组(Column A)中CA的Column C平均值
- 在Power Query编辑器中,选中
Column A列,点击转换选项卡→分组依据。 - 在弹出的分组窗口中:
- 分组依据:选择
Column A - 点击高级,添加一个聚合规则:
- 新列名:输入
CA_Avg_C - 操作:选择自定义
- 公式:输入
List.Average(Table.SelectRows([Grouped Rows], each [Column B] = "CA")[Column C])
- 新列名:输入
- 分组依据:选择
- 点击确定,得到一张包含
Column A和CA_Avg_C的分组表,将这个查询重命名为CA_Average_Table。
步骤3:合并原表与分组表
- 回到原始数据的查询(默认名称类似
表1),点击主页选项卡→合并查询→合并为新查询。 - 在合并窗口中:
- 上半部分选原始数据表,选择
Column A列; - 下半部分选刚创建的
CA_Average_Table,同样选择Column A列; - 连接类型选择左外部(所有来自第一个的行,匹配来自第二个的行);
- 上半部分选原始数据表,选择
- 点击确定,得到合并后的表,点击合并列右侧的展开按钮,只勾选
CA_Avg_C列,取消勾选“使用原始列名作为前缀”。
步骤4:计算目标值
- 点击添加列选项卡→自定义列,输入公式:
if [Column B] = "EU" then try [Column C] / [CA_Avg_C] otherwise null else null - 点击确定,新列就是每组EU的C值除以同组CA的C平均值的结果(若某组无CA数据,会返回null)。
步骤5:整理输出
- 按需筛选掉
Column B不为EU的行,或保留所有行仅关注自定义列结果; - 移除不需要的列,调整列顺序;
- 点击主页选项卡→关闭并上载,将结果导出到Excel。
内容的提问来源于stack exchange,提问作者Henrik_
相关产品推荐
相关产品推荐

