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

如何通过切片器(slicer)值间接筛选Capitals表中关联同一Current_Name的所有Prior_Name

解决Power BI切片器选择Prior_Name后展示同Current_Name的所有Prior_Name问题

你的需求很明确——通过选择去重后的Prior_Name切片器,展示该Prior_Name所属Current_Name对应的所有历史Prior_Name。你之前的DAX思路方向是对的,但问题在于切片器基于Prior_Name时,直接用SELECTEDVALUE(Capital[Current_Name])无法正确关联到选中项对应的Current_Name,我们需要调整逻辑步骤:

步骤1:创建去重的Prior_Name切片器数据源

首先确保切片器的选项是无重复的,先创建一个计算表:

Distinct_Prior_Names = DISTINCT(Capitals[Prior_Name])

然后用这个表的Prior_Name字段创建切片器,这样就能得到你需要的无重复选项列表。

步骤2:方案1 - 创建计算表展示完整列表

如果想通过表格可视化展示所有符合条件的Prior_Name,创建下面的计算表:

Related_Prior_Names = 
VAR SelectedPrior = SELECTEDVALUE(Distinct_Prior_Names[Prior_Name])
// 通过选中的Prior_Name找到对应的Current_Name
VAR TargetCurrentName = CALCULATE(VALUES(Capitals[Current_Name]), Capitals[Prior_Name] = SelectedPrior)
// 筛选出该Current_Name下的所有Prior_Name记录
RETURN FILTER(Capitals, Capitals[Current_Name] = TargetCurrentName)

把这个计算表的Prior_Name字段拖入可视化表格,当你在切片器选择某个值(比如Astana),表格就会自动显示Nur-Sultan、Astana、Almaty这三个相关Prior_Name。

步骤3:方案2 - 创建度量值生成逗号分隔的文本列表

如果想用卡片或文本框展示成紧凑的字符串列表,创建这个度量值:

Prior_Names_Text_List = 
VAR SelectedPrior = SELECTEDVALUE(Distinct_Prior_Names[Prior_Name])
IF(
    ISBLANK(SelectedPrior),
    "请选择一个Prior_Name",
    VAR TargetCurrentName = CALCULATE(VALUES(Capitals[Current_Name]), Capitals[Prior_Name] = SelectedPrior)
    VAR RelatedNames = CALCULATE(VALUES(Capitals[Prior_Name]), Capitals[Current_Name] = TargetCurrentName)
    RETURN CONCATENATEX(RelatedNames, [Prior_Name], ", ")
)

将这个度量值拖入卡片可视化,选中切片器选项后就会显示类似Nur-Sultan, Astana, Almaty的结果,未选中时还会提示用户选择。

关键逻辑说明

  • 我们先通过SELECTEDVALUE获取切片器选中的Prior_Name
  • 再用CALCULATE+VALUES关联找到对应的Current_Name(因为你的数据里每个Prior_Name只对应一个Current_Name,所以用VALUES能安全拿到唯一值)
  • 最后基于这个Current_Name筛选出所有相关的Prior_Name记录或值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 19:57:36