Power BI中如何基于度量值文本结果制作切片器筛选客户?
Power BI 基于度量值结果的切片器解决方案
硬编码方案(推荐,适合选项不常变动)
因为你的分类选项固定,手动创建辅助表是最稳定的方式:
创建独立辅助表
- 点击「主页」选项卡的「输入数据」,创建名为客户价值分类的表,列名设为「价值分类」,填入以下值:
- top purchaser
- average purchaser
- lower purchaser
- 同理创建客户年限分类表,列名「年限分类」,填入:
- New customer
- Average customer
- Long term customer
- 注意:这两个表不要和
customers表建立任何关系。
- 点击「主页」选项卡的「输入数据」,创建名为客户价值分类的表,列名设为「价值分类」,填入以下值:
编写筛选匹配度量值
- 价值分类匹配度量值:
价值筛选匹配 = VAR 选中的价值分类 = SELECTEDVALUE('客户价值分类'[价值分类]) VAR 当前客户价值 = [high value] RETURN IF(ISBLANK(选中的价值分类), 1, IF(当前客户价值 = 选中的价值分类, 1, 0)) - 年限分类匹配度量值:
年限筛选匹配 = VAR 选中的年限分类 = SELECTEDVALUE('客户年限分类'[年限分类]) VAR 当前客户年限 = [customer age] RETURN IF(ISBLANK(选中的年限分类), 1, IF(当前客户年限 = 选中的年限分类, 1, 0))
- 价值分类匹配度量值:
组合筛选条件
创建最终的筛选度量值,用来同时判断两个切片器的选择:最终筛选 = [价值筛选匹配] * [年限筛选匹配]应用筛选到视觉对象
- 把「客户价值分类」的「价值分类」和「客户年限分类」的「年限分类」分别拖到画布上,做成两个切片器
- 选中你的客户指标表格,在右侧「筛选器」面板中,添加「最终筛选」度量值,设置筛选条件为等于1
这样就能实现单独或同时筛选,比如选择「top purchaser」和「New customer」,表格只会显示同时符合这两个条件的客户。
动态方案(适合选项可能变动的场景)
如果以后分类选项可能变化,不想手动维护辅助表,可以用DAX动态生成分类表:
创建动态辅助表
- 客户价值分类动态表:
客户价值分类动态 = DISTINCT(SELECTCOLUMNS('customers', "价值分类", [high value])) - 客户年限分类动态表:
客户年限分类动态 = DISTINCT(SELECTCOLUMNS('customers', "年限分类", [customer age])) - 同样不要和
customers表建立关系。
- 客户价值分类动态表:
后续步骤和硬编码方案一致
复用上面的筛选匹配度量值(注意把表名改成动态表的名称),然后添加筛选到视觉对象即可。
扩展:支持切片器多选
如果需要切片器允许多选(比如同时选top和average purchaser),修改筛选匹配度量值为:
价值筛选匹配 = VAR 选中的价值列表 = VALUES('客户价值分类'[价值分类]) VAR 当前客户价值 = [high value] RETURN IF(COUNTROWS(选中的价值列表) = COUNTROWS('客户价值分类'), 1, IF(当前客户价值 IN 选中的价值列表, 1, 0))
年限筛选匹配度量值做同样修改即可。
内容的提问来源于stack exchange,提问作者Kat LeBlanc
相关产品推荐
相关产品推荐

