Power BI:基于切片器选中版本返回单位总和与列表的实现方法
解决方法
首先确认你的基础数据表格(假设表名为ProductData)结构如下:
| Product | Version | Unit |
|---|---|---|
| p1 | V1 | 10 |
| p2 | V1 | 20 |
| p3 | V2 | 50 |
| p4 | V2 | 10 |
| p5 | V3 | 5 |
| p6 | V4 | 20 |
| p7 | V1 | 15 |
| p8 | V2 | 15 |
| p9 | V2 | 10 |
| p10 | V3 | 5 |
| p11 | V4 | 20 |
| p12 | V4 | 10 |
| p13 | V3 | 5 |
需求一:计算选中版本的Unit总和
直接利用SUM函数配合切片器筛选即可,步骤如下:
- 在Power BI中新建度量值,输入以下DAX公式:
选中版本Unit总和 = SUM(ProductData[Unit]) - 将该度量值添加到卡片图等可视化组件中,当你在版本切片器选择任意版本时,组件会自动显示对应版本的Unit总和。
注:如果切片器基于独立的版本表(而非原始表的Version列),需确保独立版本表与
ProductData表建立单向一对多激活关系(版本表的Version列关联至ProductData的Version列),保证筛选能正常传递。
需求二:返回选中版本的所有Unit数值列表
通过CONCATENATEX函数拼接符合条件的Unit值实现,步骤如下:
- 新建度量值,输入以下DAX公式:
选中版本Unit列表 = CONCATENATEX( FILTER(ProductData, ProductData[Version] = SELECTEDVALUE(Version[Version])), ProductData[Unit], ", " )说明:若切片器直接使用原始表的Version列,将公式中的
Version[Version]替换为ProductData[Version]即可。 - 将该度量值添加到文本框或卡片图中,选择版本后会显示对应版本下所有Unit数值,以逗号分隔。
常见问题排查
如果之前用SELECTEDVALUE未成功,大概率是以下原因:
- 独立版本表与原始数据表的关系未激活或筛选方向错误;
- 公式中表/列的引用有误;
- 若切片器允许多选,需将
SELECTEDVALUE(Version[Version])替换为VALUES(Version[Version]),CONCATENATEX会自动处理多版本的数值拼接。
内容的提问来源于stack exchange,提问作者Ellie P
相关产品推荐
相关产品推荐

