Power BI多列重复值统计问题:现有方法仅返回首列结果
Power BI 多列"Yes"统计与不同产品计数解决方案
一、修复多列"Yes"统计仅返回第一列的问题
问题根源(针对示例2)
UNION函数要求合并的表列名完全一致(包括大小写),你示例2中第三个SELECTCOLUMNS的列名是Containsyes(小写y),其余是ContainsYes(大写Y),导致该列被UNION忽略,最终只统计了第一列数据。
修正后的DAX写法
方法1:修复UNION列名一致性
Count Yes = SUMX ( UNION ( SELECTCOLUMNS ( 'Table1', "ContainsYes", 'Table1'[Dim1] ), SELECTCOLUMNS ( 'Table1', "ContainsYes", 'Table1'[Dim2] ), SELECTCOLUMNS ( 'Table1', "ContainsYes", 'Table1'[Dim3] ), SELECTCOLUMNS ( 'Table1', "ContainsYes", 'Table1'[Dim4] ) ), IF ( [ContainsYes] = "Yes", 1, 0 ) )
方法2:迭代行求和(更简洁)
如果作为度量值使用,直接用SUMX迭代每行计算各列"Yes"的总和:
Count Yes = SUMX ( 'Table1', IF ( 'Table1'[Dim1] = "Yes", 1, 0 ) + IF ( 'Table1'[Dim2] = "Yes", 1, 0 ) + IF ( 'Table1'[Dim3] = "Yes", 1, 0 ) + IF ( 'Table1'[Dim4] = "Yes", 1, 0 ) )
二、统计不同产品数量
基础不同产品计数
假设产品列名为[Product],直接使用DISTINCTCOUNT函数:
Distinct Product Count = DISTINCTCOUNT('Table1'[Product])
进阶:统计含至少一个"Yes"的不同产品数量
如果需要筛选出任意一列是"Yes"的产品,再统计去重数量:
Distinct Products with Yes = CALCULATE ( DISTINCTCOUNT('Table1'[Product]), FILTER ( 'Table1', 'Table1'[Dim1] = "Yes" || 'Table1'[Dim2] = "Yes" || 'Table1'[Dim3] = "Yes" || 'Table1'[Dim4] = "Yes" ) )
内容的提问来源于stack exchange,提问作者nupura tambe
相关产品推荐
相关产品推荐

