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

如何让David Bacci的PowerBI甘特图支持切片器筛选关联任务

解决David Bacci甘特图的关联任务切片筛选问题

默认表关系只能筛选直接匹配的任务,无法递归获取依赖链上的所有关联任务,需通过DAX计算列+视觉级筛选实现需求:

1. 确认依赖字段

确保甘特图主表(假设命名为GanttData)包含前置任务列(如前置任务),记录每个任务直接依赖的任务名称;若为多依赖,建议用逗号分隔后续处理。

2. 添加依赖链计算列

在GanttData中创建计算列,生成每个任务的完整依赖链(包含自身及所有上游依赖):

任务依赖链 = PATH(GanttData[任务名], GanttData[前置任务])

该列会生成类似任务B|任务A的字符串,代表任务A依赖任务B。

3. 配置切片器表关系

确认切片器独立表(假设命名为TaskSlicer)是通过DISTINCT(GanttData[任务名])生成的,且与GanttData基于任务名建立单向交叉筛选关系(筛选方向:从TaskSlicer指向GanttData)。

4. 创建显示控制度量值

编写度量值,判断当前任务是否属于选中任务的关联链(包含自身、前置依赖、依赖自身的任务):

显示任务 = 
VAR 选中任务 = SELECTEDVALUE(TaskSlicer[任务名])
RETURN
IF(
    ISBLANK(选中任务),
    1, -- 未选择时显示所有任务
    -- 检查当前任务是否是选中任务/选中任务的前置/依赖选中任务
    PATHCONTAINS(GanttData[任务依赖链], 选中任务) ||
    PATHCONTAINS(PATHREVERSE(GanttData[任务依赖链]), 选中任务)
)

5. 应用视觉级筛选

将显示任务度量值拖入David Bacci甘特图的视觉级筛选器,设置筛选条件为显示任务 = 1。

多依赖场景补充

若前置任务列是多值(如任务B,任务C),需先拆分依赖关系:

  1. 创建新表任务依赖关系,用DAX拆分多依赖:
任务依赖关系 = 
GENERATE(
    GanttData,
    SELECTCOLUMNS(
        SPLIT(GanttData[前置任务], ","),
        "拆分后前置任务", [Value]
    )
)
  1. 用任务依赖关系表替代原主表的前置任务字段,重新生成任务依赖链计算列即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 08:30:10