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

如何在Power BI中基于子项汇总筛选含/不含Quality部门工时的项目?

在Power BI中按项目是否包含Quality部门工时筛选数据

先整理你的数据集如下:

项目资源部门工时
ADwightSales2
CJimSales4
ACreedQuality1
BJimSales3
DCreedQuality2
DMichaelCorporate8

方法1:用DAX计算列标记后筛选

这个思路对应SQL的EXISTS子查询逻辑,先给每条记录标记所属项目是否存在Quality部门工时,再通过标记筛选分组。

  1. 在数据视图中选中目标表,点击建模选项卡 → 新建列
  2. 输入以下DAX公式(替换'表名'为你实际的表名称):
是否包含Quality工时 = 
VAR 当前项目 = '表名'[项目]
RETURN
IF(
    COUNTROWS(
        FILTER(
            '表名',
            '表名'[项目] = 当前项目 && '表名'[部门] = "Quality"
        )
    ) > 0,
    "有Quality工时",
    "无Quality工时"
)
  1. 生成计算列后,在报表视图中用该列作为筛选器:
    • 选择"有Quality工时",得到项目A、D的所有记录
    • 选择"无Quality工时",得到项目B、C的所有记录

方法2:用Power Query(M语言)拆分数据集

这个思路对应SQL的LEFT JOIN后筛选NULL的逻辑,先提取有Quality工时的项目列表,再和原表关联拆分。

  1. 点击主页选项卡 → 转换数据,进入Power Query编辑器
  2. 复制原始表:右键左侧面板的表 → 复制,重命名为Quality项目列表
  3. 处理Quality项目列表:
    • 筛选部门列等于"Quality"
    • 移除项目列的重复值,只保留唯一的有Quality工时的项目
    • 删除其他列,仅保留项目列
  4. 回到原始表,点击合并查询 → 合并查询作为新查询:
    • 左表选原始表,右表选Quality项目列表
    • 匹配列均选项目,连接类型选左外部(第一个中的所有行,第二个中的匹配行)
  5. 展开合并后的列,会得到一个新列(如项目_Quality项目列表):
    • 列值不为空的行:对应项目存在Quality工时
    • 列值为空的行:对应项目无Quality工时
  6. 基于该列筛选,即可拆分出两类数据:
    • 筛选列值不为空 → 有Quality工时的项目记录
    • 筛选列值为空 → 无Quality工时的项目记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:57:27