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

如何在Power BI中使用DAX提取矩阵的列小计以实现过滤?

解决DAX获取失败零件总计并用于过滤的问题

先明确核心:你需要先正确计算失败零件的总计值,再基于这个值做过滤。以下是具体可行的方案:

1. 先创建正确的失败总计度量值

根据你的数据结构选择对应的DAX公式:

  • 如果表中有直接记录失败零件数量的列:
失败零件总计 = SUM('生产表'[失败零件数量])
  • 如果是用状态字段标记(比如"失败"文本/布尔值):
失败零件总计 = COUNTROWS(FILTER('生产表', '生产表'[状态] = "失败"))
  • 若要统计不同的失败零件编号数量:
失败零件编号数 = DISTINCTCOUNT(FILTER('生产表', '生产表'[状态] = "失败"), '生产表'[零件编号])

2. 基于总计值做过滤的两种场景

场景A:直接在矩阵视觉中过滤

  • 选中你的矩阵组件,打开右侧「筛选器」面板
  • 添加筛选条件,选择你刚创建的失败零件总计度量值
  • 设置规则(比如「大于0」「大于10」等),应用后矩阵会自动只显示符合条件的行/列

场景B:创建预筛选的计算表/计算列

如果需要更灵活的分析,比如提取符合条件的零件集合:

方法1:生成符合条件的零件列表(计算表)

符合过滤条件的零件 = 
FILTER(
    SUMMARIZE('生产表', '生产表'[零件编号], "累计失败数", [失败零件总计]),
    [累计失败数] > 0  // 替换为你的具体过滤阈值
)

将这个计算表与原生产表通过「零件编号」关联,就能用它作为筛选器过滤整个模型的数据。

方法2:在原表中标记符合条件的项(计算列)

是否满足失败过滤 = 
VAR 零件全局失败数 = CALCULATE([失败零件总计], ALLEXCEPT('生产表', '生产表'[零件编号]))
RETURN
IF(零件全局失败数 > 0, "是", "否")

之后用这个计算列作为筛选器,选择「是」即可过滤出目标零件。

常见踩坑点排查

  • 确保度量值的上下文正确:如果要忽略月份维度的影响,获取零件的全局失败总计,必须用ALLEXCEPT('生产表', '生产表'[零件编号])来保留零件编号的上下文,清除其他筛选(比如月份)
  • 统计零件编号时,不要直接用COUNT('生产表'[零件编号]),因为它会统计所有行的编号数量,必须配合FILTER筛选出失败状态的行再统计

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:20:03