Power BI DAX中列与权重得分相乘报错问题求助
解决DAX权重计算的报错问题
报错原因
错误核心是DAX无法解析Weight的单一值:若Weight是度量值,直接引用table[columns]时未指定聚合逻辑;若为计算列,后续度量值使用时未正确处理上下文。
正确实现方案
方案1:计算列+度量值组合
先通过计算列定义每行权重,再汇总计算:
- 创建
weight计算列:
weight = IF(CONTAINSROW({"FirstName", "LastName", "BirthDate"}, table[columns]), 2, 1)
(注意:DAX大小写敏感,确保公式中字符串与columns列取值完全匹配,比如样本表的BirthDate)
- 创建
weightedvalue计算列:
weightedvalue = table[count] * table[weight]
- 用度量值汇总加权值,用于占比计算:
总加权值 = SUM(table[weightedvalue]) 有效得分占比 = [你的有效得分度量值] / [总加权值]
方案2:纯度量值实现(适配动态筛选)
如果需要根据筛选上下文动态计算,直接用迭代函数逐行计算后汇总:
总加权值 = SUMX( table, table[count] * IF(CONTAINSROW({"FirstName", "LastName", "BirthDate"}, table[columns]), 2, 1) )
后续占比计算直接引用该度量值:
有效得分占比 = [有效得分] / [总加权值]
SUMX会遍历表中每行,计算对应权重与计数的乘积后求和,完美避免单一值解析问题。
内容的提问来源于stack exchange,提问作者budding pro
相关产品推荐
相关产品推荐

