Power BI中用DAX统计多列唯一值出现频率的方法求助
解决方法
可以使用ADDCOLUMNS函数给你的唯一值表添加计数列,通过计算每个值在Table1三列中的总出现次数来实现:
Table2 = ADDCOLUMNS( DISTINCT( UNION( DISTINCT('Table1'[Column1]), DISTINCT('Table1'[Column2]), DISTINCT('Table1'[Column3]) ) ), "出现次数", COUNTROWS(FILTER('Table1', 'Table1'[Column1] = [Value] || 'Table1'[Column2] = [Value] || 'Table1'[Column3] = [Value])) )
代码说明
ADDCOLUMNS:给原有的唯一值表新增一列,命名为"出现次数"- 计数逻辑:用
FILTER筛选出Table1中任意一列等于当前唯一值的行,再用COUNTROWS统计这些行的数量,即为该值在三列中的总出现次数
如果合并后的唯一值列默认名称不是Value,替换成实际列名即可(比如合并后列名为"Column1",就把[Value]改成[Column1])。
高效替代方案(适合大数据量)
先将三列数据转换为单列表,再分组统计:
Table2 = VAR UnpivotedTable = UNION( SELECTCOLUMNS('Table1', "值", 'Table1'[Column1]), SELECTCOLUMNS('Table1', "值", 'Table1'[Column2]), SELECTCOLUMNS('Table1', "值", 'Table1'[Column3]) ) RETURN SUMMARIZE( UnpivotedTable, [值], "出现次数", COUNTROWS(UnpivotedTable) )
替代方案说明
- 用
SELECTCOLUMNS和UNION把三列数据转换成单列表UnpivotedTable - 通过
SUMMARIZE按"值"分组,统计每组行数得到出现次数
内容的提问来源于stack exchange,提问作者user2133561
相关产品推荐
相关产品推荐

