PowerBI单值切片器筛选地点,展示对应客户全部关联地点
在PowerBI中实现按地点筛选并展示客户全部关联地点
需求明确:做一个地点切片器,选某个地点后,筛选出所有包含该地点的客户,并且表格里要显示这些客户的全部关联地点,不是只显示选中的那个地点。下面分两种数据结构给出实操方案:
一、用拆分后的明细数据表(推荐)
这种结构本身就适合PowerBI的模型逻辑,操作更顺畅:
第一步:建独立的地点维度表
打开数据转换编辑器,选中明细数据表的Locations列,点「转换」→「提取」→「值列表」,右键生成的列表选「创建新表」,命名成地点维度表,确保表里是唯一的地点值。
切到模型视图,把地点维度表的Locations列和明细数据表的Locations列连起来,建单向多对一关系(明细数据表是多端,维度表是一端)。第二步:做地点切片器
回到报表视图,从地点维度表拖Locations字段到画布,直接生成切片器。第三步:写DAX度量值控制筛选
点「建模」→「新建度量值」,粘贴下面的DAX代码:客户是否包含选中地点 = VAR 选中地点 = VALUES('地点维度表'[Locations]) VAR 当前客户 = SELECTEDVALUE('明细数据表'[Customer]) VAR 客户所有地点 = CALCULATETABLE(VALUES('明细数据表'[Locations]), ALL('明细数据表'), '明细数据表'[Customer] = 当前客户) RETURN IF(COUNTROWS(INTERSECT(选中地点, 客户所有地点)) > 0, 1, 0)第四步:给表格加筛选条件
拖明细数据表的Customer和Locations字段做表格,选中表格后在右侧「筛选」面板里,把刚才的客户是否包含选中地点度量值加进去,设置筛选条件为「等于1」。
这样选切片器里的地点,表格就会自动显示符合要求的客户和他们的全部地点了。
二、用逗号分隔的聚合表
先把聚合表转成明细结构,再按上面的步骤来:
- 打开数据转换编辑器,选中聚合表的
Locations列,点「转换」→「拆分列」→「按分隔符」,选逗号,然后选「拆分为行」,把表转成每行对应单个地点的结构,命名成拆分后的数据表。 - 之后的操作和上面明细数据表的步骤完全一致,建维度表、连关系、写度量值、设置表格筛选就行。
内容的提问来源于stack exchange,提问作者jabs
相关产品推荐
相关产品推荐

