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

如何在PowerBI DAX中计算每行平均值及指定行全列平均值?

PowerBI DAX 问题解决方案

1. 各地点下Category 1-5的每行平均值

直接用AVERAGE或AVERAGEA失效的原因是:这两个函数默认对列做纵向聚合,而非行内多列的横向平均。需要用迭代函数处理行内的列值集合:

计算列写法(添加到目标表中)

每行Category平均值 = 
AVERAGEX(
    {[Category 1], [Category 2], [Category 3], [Category 4], [Category 5]},
    [Value]
)

如果需要将空值视为0参与计算,改用AVERAGEA:

每行Category平均值 = 
AVERAGEA(
    {[Category 1], [Category 2], [Category 3], [Category 4], [Category 5]}
)

关键说明

  • {[列1], [列2]...}会生成当前行所有Category值的临时数组
  • AVERAGEX遍历数组计算非空值的平均;AVERAGEA会把空值转为0后计算

2. 计算第10行所有列的平均值

PowerBI中“第10行”需明确排序规则,先定位目标行再计算多列平均:

度量值写法(用于报表可视化)

第10行平均值 = 
VAR TargetRow = 
    TOPN(
        1,
        OFFSET(9, ALL('你的表名'), ORDERBY('你的表名'[Location], ASC)),
        '你的表名'[Location], ASC
    )
RETURN
AVERAGEX(
    {
        MAXX(TargetRow, [Category 1]),
        MAXX(TargetRow, [Category 2]),
        MAXX(TargetRow, [Category 3]),
        MAXX(TargetRow, [Category 4]),
        MAXX(TargetRow, [Category 5])
    },
    [Value]
)

关键说明

  1. OFFSET(9, ...)跳过前9行(索引从0开始),定位到第10行
  2. TOPN(1, ...)提取该行的完整记录
  3. MAXX(TargetRow, [列名])获取目标行对应列的值,再通过AVERAGEX计算这些值的平均
  4. 替换'你的表名'和排序字段[Location]为实际表名和排序依据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:31:04