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

PowerBI矩阵添加Product列后数值异常,求正确显示未更换备件计数方法

PowerBI矩阵展开备件后计数错误的解决方案

问题根源

  1. 度量值笔误:原# Incomplete change度量值的RETURN语句错误引用了未定义的countNo,实际应为countYes。
  2. 计算列上下文不匹配:[Complete?]计算列是基于单台机器的整体维护状态生成的静态标记,当矩阵展开到备件级别时,行上下文切换到单个备件,但度量值仍按机器的整体状态计数,导致所有备件行重复显示该机器的计数,无法体现单个备件对应的未完成机器数量。

修正步骤

1. 修复原度量值的笔误

# Incomplete change = 
VAR countYes = 
CALCULATE(
    DISTINCTCOUNT('PM Checklist vs Last SP Used'[Install Base]),
    'PM Checklist vs Last SP Used'[Complete?] = "Incomplete")

RETURN
IF(countYes = BLANK(), 0, countYes) // 替换原错误的countNo为countYes

2. 兼容备件级别的通用度量值

如果需要同时支持机器/产品级别和备件级别的正确计数,使用以下动态度量值替代原有的# Incomplete change和# Complete change:

未完成维护计数

# 未完成维护 = 
VAR IsSparePartLevel = ISINSCOPE('PM Checklist vs Last SP Used'[备件列名]) // 替换为你的实际备件列名称
VAR IncompleteMachines = 
IF(
    IsSparePartLevel,
    // 备件级别:统计当前备件未更换的机器数
    CALCULATETABLE(
        DISTINCT('PM Checklist vs Last SP Used'[Install Base]),
        'PM Checklist vs Last SP Used'[Need to change (w 90 days allowance)] = "Yes",
        'PM Checklist vs Last SP Used'[PM Update in CRM] = "Yes",
        'PM Checklist vs Last SP Used'[PM Material Type] = "PM SP",
        'PM Checklist vs Last SP Used'[PM Mandatory to Change] = "Yes"
    ),
    // 产品/机器级别:统计存在未更换必填备件的机器数
    CALCULATETABLE(
        DISTINCT('PM Checklist vs Last SP Used'[Install Base]),
        EXISTS(
            'PM Checklist vs Last SP Used',
            FILTER(
                ALLEXCEPT('PM Checklist vs Last SP Used', 'PM Checklist vs Last SP Used'[Install Base]),
                'PM Checklist vs Last SP Used'[Need to change (w 90 days allowance)] = "Yes" &&
                'PM Checklist vs Last SP Used'[PM Update in CRM] = "Yes" &&
                'PM Checklist vs Last SP Used'[PM Material Type] = "PM SP" &&
                'PM Checklist vs Last SP Used'[PM Mandatory to Change] = "Yes"
            )
        )
    )
)
RETURN COUNTROWS(IncompleteMachines)

已完成维护计数

# 已完成维护 = 
VAR TotalMachines = DISTINCTCOUNT('PM Checklist vs Last SP Used'[Install Base])
VAR IncompleteCount = [# 未完成维护]
RETURN IF(TotalMachines - IncompleteCount < 0, 0, TotalMachines - IncompleteCount)

逻辑说明

  • 新度量值通过ISINSCOPE判断当前是否处于备件行上下文,动态调整计算逻辑:
    • 备件级别:直接筛选当前备件未更换的机器,去重后计数。
    • 产品/机器级别:沿用原逻辑,统计存在至少一个未更换必填备件的机器数。
  • 已完成计数通过总机器数减去未完成数得到,避免重复编写逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:43:33