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

Power BI多列重复计算自动化实现方案咨询

Power BI多列批量自动化处理方案

1. 数据重塑(宽表转窄表)

在Power Query编辑器中操作:

  • 选中Index列,确保只保留该列未被选中其他列
  • 右键点击任意FIFO2系列列,选择「Unpivot Other Columns」
  • 重命名生成的Attribute列为「列名」,Value列为「原始值」,得到结构为:Index | 列名 | 原始值的窄表

2. 批量计算第一个需求:基准差值

在数据视图中,给重塑后的表添加计算列:

基准差值 = 
VAR 区间平均值 = CALCULATE(
    AVERAGE('重塑后表'[原始值]),
    FILTER('重塑后表', '重塑后表'[Index] >=15 && '重塑后表'[Index] <=20)
)
RETURN 区间平均值 - '重塑后表'[原始值]

该计算列会自动对每个「列名」(原FIFO2列)计算对应行的差值,无需单独为每列创建度量值。

3. 批量计算第二个需求:最大值对应Index及后续10点平均值

3.1 获取每列最大值对应的Index

添加计算列:

最大值对应Index = 
VAR 列最大值 = CALCULATE(
    MAX('重塑后表'[原始值]),
    ALLEXCEPT('重塑后表', '重塑后表'[列名])
)
RETURN CALCULATE(
    MAX('重塑后表'[Index]),
    FILTER('重塑后表', '重塑后表'[原始值] = 列最大值 && '重塑后表'[列名] = EARLIER('重塑后表'[列名]))
)

注:如果某列存在多个最大值行,这里取Index最大的那个;若需取最小Index,把MAX改为MIN即可

3.2 计算该Index起最后10个数据的平均值

添加度量值(用于可视化)或计算列:

最后10点平均值 = 
VAR 目标Index = MAX('重塑后表'[最大值对应Index])
VAR 筛选后行 = FILTER(
    '重塑后表',
    '重塑后表'[Index] >= 目标Index && '重塑后表'[列名] = MAX('重塑后表'[列名])
)
VAR 取最后10行 = TOPN(10, 筛选后行, '重塑后表'[Index], DESC)
RETURN AVERAGE(取最后10行[原始值])

注:如果从目标Index开始的剩余数据不足10个,会自动取所有剩余数据的平均值

4. 转回宽表(可选)

若需要恢复原宽表格式,回到Power Query编辑器:

  • 选中「列名」列,点击「转换」选项卡中的「Pivot Column」
  • 在弹出窗口中,「值列」选择「基准差值」和「最后10点平均值」,「高级选项」选择「不要聚合」
  • 最终会生成每个原FIFO2列对应的差值列和平均值列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:06:14