You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power BI中基于多产品列创建单一下拉切片器

在Power BI中创建产品下拉切片器筛选购买用户的方案

现有数据

IDTYPEProduct 1Product 2Product 3
1A110
1B001
2A011
2B101
3A100

需求说明:除ID和TYPE列外,其余为0/1二进制列,用于标识用户是否购买对应产品。需创建包含Product 1、Product 2、Product 3的单一下拉切片器,筛选出购买所选产品的用户。


步骤1:将宽表转换为窄表(逆透视)

当前产品列是宽格式,无法直接作为切片器选项,需要先转成窄表:

  • 进入Power Query编辑器,选中ID和TYPE列
  • 点击转换选项卡 → 逆透视其他列
  • 重命名生成的列:将Attribute改为Product,Value改为Purchased
  • 关闭并应用,得到如下结构的表:
IDTYPEProductPurchased
1AProduct 11
1AProduct 21
1AProduct 30
1BProduct 10

步骤2:创建独立产品维度表(推荐)

为避免切片器与主表的交互冲突,建议创建独立的产品维度表:

  • 在Power Query中,从转换后的表提取Product列的唯一值,生成新表Product List(仅包含Product列)
  • 在数据模型中,建立Product List[Product]与主表Product列的一对一关系

步骤3:创建DAX度量值判断用户购买状态

在主表中创建如下度量值,用于判断当前用户是否购买了切片器选中的产品:

用户已购买 = 
VAR SelectedProd = SELECTEDVALUE('Product List'[Product])
RETURN
MAXX(
    FILTER('主表', '主表'[Product] = SelectedProd),
    '主表'[Purchased]
)

如果需要支持多选切片器(筛选购买所有选中产品的用户),使用这个度量值:

用户已购买所选全部产品 = 
VAR SelectedProducts = VALUES('Product List'[Product])
VAR UserPurchased = CALCULATETABLE(VALUES('主表'[Product]), ALLEXCEPT('主表', '主表'[ID]))
RETURN
IF(COUNTROWS(EXCEPT(SelectedProducts, UserPurchased)) = 0, 1, 0)

步骤4:配置切片器与视觉对象

  • 从Product List表拖入Product字段到画布,创建下拉切片器
  • 拖入ID等用户字段到目标视觉对象(如表格、卡片图)
  • 为视觉对象添加筛选条件:选择对应的度量值,设置筛选规则为等于1

内容的提问来源于stack exchange,提问作者Grzegorz Szymala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:32:34