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

基于DAX实现生产计划与实际产量匹配率计算求助

DAX计算计划与生产执行的匹配率解决方案

1. 先处理表格关联逻辑

两个表的关联维度是「日期(DateProg/DateProduction)、Shift、SKU」,先确保这三个字段的格式完全一致(比如日期格式统一、Shift的文本大小写一致、SKU编码无空格)。如果不想在模型里建硬关联(避免多对多冲突),直接在DAX计算里做动态关联即可。

2. 计算实际执行产量(QtyExecuted)

如果生产执行表是明细行(每一行对应一个产出),用COUNTROWS统计;如果表本身有产量字段,直接用SUM求和。下面是动态关联的DAX代码:

QtyExecuted = 
CALCULATE(
    COUNTROWS('Production Table'), -- 若有产量字段,替换为SUM('Production Table'[实际产量字段])
    FILTER(
        'Production Table',
        'Production Table'[DateProduction] = 'Planning Table'[DateProg] &&
        'Production Table'[Shift] = 'Planning Table'[Shift] &&
        'Production Table'[SKU] = 'Planning Table'[SKU]
    )
)

3. 计算匹配率(%Adherency)

核心逻辑是实际产量除以计划产量,必须处理计划产量为0的情况,避免报错:

%Adherency = 
VAR 实际产量 = [QtyExecuted]
VAR 计划产量 = 'Planning Table'[QtyProg]
RETURN
IF(
    计划产量 = 0,
    BLANK(), -- 若需求要求计划产量为0时显示0%,可替换为0
    DIVIDE(实际产量, 计划产量, 0) * 100
)

4. 应对全维度汇总场景(如矩阵报表)

如果要展示所有维度组合(包括计划有但实际无产出、实际有但无计划的情况),需先建立独立的维度表:日期维度、班次维度、SKU维度,再将计划和生产表关联到这些维度表。之后用以下DAX计算全量数据:

全量实际产量

Total QtyExecuted = 
CALCULATE(
    COUNTROWS('Production Table'),
    TREATAS(
        SUMMARIZE('Planning Table', 'Planning Table'[DateProg], 'Planning Table'[Shift], 'Planning Table'[SKU]),
        'Production Table'[DateProduction], 'Production Table'[Shift], 'Production Table'[SKU]
    )
)

全量匹配率

Total %Adherency = 
VAR 全量实际 = [Total QtyExecuted]
VAR 全量计划 = SUM('Planning Table'[QtyProg])
RETURN
IF(
    全量计划 = 0,
    BLANK(),
    DIVIDE(全量实际, 全量计划, 0) * 100
)

样本数据验证示例

举个简单测试场景:

计划表数据:

DateProgShiftSKUQtyProg
2024-05-01DayA123100
2024-05-01NightB45650

生产执行表数据:A123对应95条明细,B456对应50条明细

用上述DAX计算后,A123的实际产量为95、匹配率95%;B456的实际产量为50、匹配率100%,完全符合期望输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:43:04