请求协助:Power BI中无需新建表通过Measure统计多值列唯一值数量
统计含逗号分隔多值列的唯一值数量(无需修改数据集/新建表)
需求:在Power BI的卡片可视化中,统计数据集里Supplier列的不同值总数。该列支持逗号分隔的多值,且不能新建表或修改现有数据集。
示例数据:
Supplier 54 Null 216,549 992,97,769,1125,1127 823 96 Null 823 93
预期结果:11
我尝试了以下步骤但未成功:
- 创建仅包含
Supplier列不同值的表变量:
Variable Table_Column1 54 216,549 992,97,769,1125,1127 823 96 93
- 将新表中每行的多值拆分为单独行(考虑用
Generateseries?):
Variable Table_Column1 54 216 549 992 97 769 1125 1127 823 96 93
- 统计拆分后列的
Distinctcount,结果应为11。
现在困惑的是如何在Distinctcount中使用新表变量的列,求解决方法。
解决方案
可以通过编写DAX度量值实现,核心逻辑在度量值内完成,无需修改模型:
Unique Supplier Count = VAR DistinctSuppliers = // 获取Supplier列非空的唯一值 SELECTCOLUMNS( DISTINCT( FILTER('你的表名', NOT ISBLANK('你的表名'[Supplier])) ), "OriginalValue", '你的表名'[Supplier] ) VAR SplitSuppliers = // 拆分每行的逗号分隔值为单独行 GENERATE( DistinctSuppliers, VAR ValueList = PATHITEMSPLIT([OriginalValue], ",") RETURN SELECTCOLUMNS(ValueList, "SplitValue", [Value]) ) RETURN // 统计拆分后的唯一值数量 COUNTROWS(DISTINCT(SplitSuppliers[SplitValue]))
说明:
- 将
'你的表名'替换为实际的数据集表名 PATHITEMSPLIT函数可直接按逗号拆分文本为列表,比手动用Generateseries更简洁- 所有逻辑封装在度量值中,无需新建表或修改原始数据集
内容的提问来源于stack exchange,提问作者Joaolopes
相关产品推荐
相关产品推荐

