Power BI DAX 数组子集匹配逻辑与求和异常问题咨询
问题解答
1. 匹配逻辑确认
现有DAX的匹配逻辑为完整值精确匹配,代码中EARLIER ( [_txt] ) = 'lookup'[Column1]的判断条件要求拆分后的选项和lookup表Column1存储的内容完全一致,你单独选中iOS对应选项时计算正常就是精确匹配生效的证明。
2. 总分计算异常原因
全选时总分翻倍是原DAX的行上下文嵌套逻辑错误导致的:
原代码在RETURN段又重新遍历了一次完整的digital_competences_q3表,叠加CALCULATE的上下文转换效果,导致拆分后的5个选项的分数被重复累加了2次,5*2=10的预期值重复计算后就得到了20的错误结果。
修正后的DAX计算列代码
Column = VAR CurrentValue = [q3_a] VAR SplitList = SUBSTITUTE(CurrentValue, ";", "|") VAR ItemCount = PATHLENGTH(SplitList) VAR TotalScore = SUMX( GENERATESERIES(1, ItemCount), VAR ItemText = TRIM(PATHITEM(SplitList, [Value], TEXT)) RETURN CALCULATE(MAX('lookup'[score]), 'lookup'[Column1] = ItemText) + 0 ) RETURN TotalScore
上面的代码直接基于当前行的[q3_a]值拆分计算,没有多余的全表遍历逻辑,避免重复计算问题,同时保留了原有的精确匹配规则。
内容的提问来源于stack exchange,提问作者hectic
相关产品推荐
相关产品推荐

