如何在Power BI DAX中按行计算多列最小值及聚合平均值的均值、最小值
DAX解决方案:行/列聚合后的均值与最小值计算
1. 计算按行聚合后的平均值的最小值
先计算每个行分组的平均值(该行所有列分组对应聚合值的平均),再取这些平均值的最小值:
步骤1:创建「行平均值」度量值
行平均值 = AVERAGEX( VALUES('你的表名'[列分组字段]), -- 替换为你的列维度字段(如月份、区域) CALCULATE(SUM('你的表名'[数值字段])) -- 替换为你的数值聚合逻辑(如SUM/COUNT等) )
步骤2:创建「行平均最小值」度量值
行平均最小值 = MINX( VALUES('你的表名'[行分组字段]), -- 替换为你的行维度字段(如产品、类别) [行平均值] )
2. 计算按行和列聚合后的平均值的均值
根据需求分两种场景:
场景1:所有行×列聚合单元格的整体平均值
计算表1中所有交叉聚合单元格的平均值:
行列聚合整体均值 = AVERAGEX( CROSSJOIN(VALUES('你的表名'[行分组字段]), VALUES('你的表名'[列分组字段])), CALCULATE(SUM('你的表名'[数值字段])) )
场景2:行平均值与列平均值的整体均值
先分别计算每行、每列的平均值,再求这些值的整体均值:
-- 先创建「列平均值」度量值 列平均值 = AVERAGEX( VALUES('你的表名'[行分组字段]), CALCULATE(SUM('你的表名'[数值字段])) ) -- 再创建「行平均与列平均的均值」度量值 行平均与列平均的均值 = AVERAGEX( UNION( SELECTCOLUMNS(VALUES('你的表名'[行分组字段]), "分组", [行分组字段], "平均值", [行平均值]), SELECTCOLUMNS(VALUES('你的表名'[列分组字段]), "分组", [列分组字段], "平均值", [列平均值]) ), [平均值] )
注意事项
- 替换代码中的
你的表名、行分组字段、列分组字段、数值字段为你实际的数据表和字段名 - 如果你的聚合逻辑不是SUM(如平均值、计数),可将
CALCULATE(SUM(...))替换为对应的聚合函数(如CALCULATE(AVERAGE(...)))
内容的提问来源于stack exchange,提问作者Adam Meyer
相关产品推荐
相关产品推荐

