Power BI创建各ID平均总支出度量值报错排查
错误原因排查
- 语法错误1:
SUM()函数仅支持直接传入列引用作为参数,原代码中SUM( DISTINCT ( Table[Total_spend] ) )传入的是DISTINCT函数返回的单列表对象,不符合入参规则,直接触发你看到的报错。 - 语法错误2:原代码的
SUMMARIZE函数缺少闭合右括号,语句结构不完整。 - 逻辑风险:原代码使用SUMMARIZE生成聚合表的写法性能较差,且未明确同一ID下重复Total_Spend值的处理规则,容易出现计算结果和预期不符的问题。
正确度量值写法
根据业务场景对重复值的处理要求,二选一即可:
场景1:同一ID下相同Total_Spend为重复录入,需去重后计算单ID总消费
对应示例数据中同一ID存在多行相同消费值的情况,计算逻辑为:先取每个ID下所有不重复的消费值求和得到单ID总消费,再对所有ID的总消费求平均值。
AvgIDSpend = AVERAGEX ( VALUES( 'Table'[ID] ), VAR CurIDDistinctSpend = DISTINCT( 'Table'[Total_Spend] ) RETURN SUMX( CurIDDistinctSpend, 'Table'[Total_Spend] ) )
基于提供的示例数据,该写法计算结果为(34 + 56 + 43 + 12)/3 ≈ £48.33。
场景2:同一ID下每一行都是独立有效消费记录,无需去重
计算逻辑为:先按ID汇总该ID下所有行的消费总额,再对所有ID的消费总额求平均值。
AvgIDSpend = AVERAGEX ( VALUES( 'Table'[ID] ), CALCULATE( SUM( 'Table'[Total_Spend] ) ) )
基于提供的示例数据,该写法计算结果为(102 + 198 + 24)/3 = £108.00。
注意:代码中的
Table请替换为Power BI模型中实际的表名称。
内容的提问来源于stack exchange,提问作者CodeBob
相关产品推荐
相关产品推荐

