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

如何实现Power BI切片器联动:基于集群国家匹配项目

需求与问题

我有一张事实表,需要对比不同项目的成本,项目按cluster(集群)和country(国家)分组。想要创建两个基于project(项目)列的切片器:

  • 第一个切片器包含所有项目
  • 选中第一个切片器的项目后,第二个切片器返回同集群同国家的项目

目前已能获取表中不同项目的成本,但联动筛选的需求还没实现。

已尝试的操作

创建了两个独立的切片器表,DAX代码如下:

slicer1 = SUMMARIZECOLUMNS(Facts_table[project],Facts_table[country],Facts_table[cluster])

slicer2 = SUMMARIZECOLUMNS(Facts_table[project],Facts_table[country],Facts_table[cluster])

同时创建了两个度量值,并在筛选窗格设置为“非空白”:

Slicer1 count = CALCULATE(COUNTROWS('Facts_table'),'Facts_table'[project] = SELECTEDVALUE('Slicer1'[project]))

Slicer2 count = CALCULATE(COUNTROWS('Facts_table'),'Facts_table'[project] = SELECTEDVALUE('Slicer2'[project]))

事实表数据

projectdeptclustercountrycost
Project AHR1France10830
Project bLogistics1Poland11841
Project cProduct design2France11209
Project dTransport1Turkey6814
Project eHR1UK9881
Project fLogistics2Poland9804
Project gProduct design2Turkey10460
Project gTransport2France5486
Project hHR1Poland6960
Project jLogistics2France11098
Project iProduct design3Turkey12276
Project kTransport3UK7614
Project fHR1Poland6039
Project nLogistics2Turkey6285
Project mProduct design1Turkey8732

解决方案

步骤1:创建统一的项目维度表

不需要两个独立的切片器表,创建一个包含唯一项目及对应属性的维度表即可,且不要和事实表建立关系,避免自动筛选干扰:

Project_Dim = 
SUMMARIZE(
    Facts_table,
    Facts_table[project],
    Facts_table[cluster],
    Facts_table[country]
)

步骤2:编写切片器联动的控制度量值

删除原有Slicer2 count,替换为以下度量值,用来控制第二个切片器的显示内容:

Slicer2_Valid = 
VAR SelectedCluster = SELECTEDVALUE(Project_Dim[cluster])
VAR SelectedCountry = SELECTEDVALUE(Project_Dim[country])
RETURN
IF(
    ISBLANK(SelectedCluster),
    1, // 未选项目时显示所有项目
    CALCULATE(
        COUNTROWS(Project_Dim),
        Project_Dim[cluster] = SelectedCluster,
        Project_Dim[country] = SelectedCountry,
        Project_Dim[project] <> SELECTEDVALUE(Project_Dim[project]) // 可选:排除已选中的项目
    )
)

步骤3:配置切片器筛选

  • 第一个切片器使用Project_Dim[project]字段
  • 第二个切片器同样使用Project_Dim[project]字段,在筛选窗格添加条件:Slicer2_Valid 不为空白

步骤4:创建成本计算度量值

为了正确计算选中项目的成本,避免切片器筛选冲突,创建以下度量值:

Selected_Project_Cost = 
CALCULATE(
    SUM(Facts_table[cost]),
    TREATAS(
        VALUES(Project_Dim[project]),
        Facts_table[project]
    )
)

完成以上设置后,选中第一个切片器的项目时,第二个切片器会自动展示同集群同国家的项目,同时可通过Selected_Project_Cost查看对应项目的总成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 15:22:48