如何在DAX中不拆分列实现逗号分隔字符串列的出现次数统计与分组
DAX实现逗号分隔列值统计(不修改原表结构)
你可以直接新建DAX计算表实现需求,全程不需要修改原表的Data列结构:
方法1:适用新版Power BI/SSAS(支持STRING_SPLIT函数)
统计结果 = VAR AllSplitValues = SELECTCOLUMNS ( GENERATE ( '你的原表名称', STRING_SPLIT ( '你的原表名称'[Data], "," ) ), "Data", [Value] ) RETURN GROUPBY ( AllSplitValues, [Data], "Count", COUNTX ( CURRENTGROUP(), [Data] ) )
方法2:兼容旧版DAX环境(无STRING_SPLIT也可使用)
统计结果_兼容版 = // 先计算单条字符串最多包含多少个独立值 VAR MaxValueCount = MAXX('你的原表名称', LEN([Data]) - LEN(SUBSTITUTE([Data], ",", "")) + 1) // 生成序号序列用于遍历取值 VAR SerialNumbers = GENERATESERIES(1, MaxValueCount, 1) // 逐行拆分所有字符串为独立值 VAR AllSplit = SELECTCOLUMNS( GENERATE( '你的原表名称', SerialNumbers ), "Data", TRIM(PATHITEM(SUBSTITUTE('你的原表名称'[Data], ",", "|"), [Value])) ) // 过滤空值 VAR FilterValid = FILTER(AllSplit, [Data] <> BLANK()) RETURN // 分组统计次数 GROUPBY( FilterValid, [Data], "Count", COUNTX(CURRENTGROUP(), [Data]) )
- 使用时只需将代码中的
你的原表名称替换为实际表名即可 - 两种方案均不会修改原表结构,也不需要在原表新增任何计算列
内容的提问来源于stack exchange,提问作者Alan Cradler
相关产品推荐
相关产品推荐

