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

Power BI DAX多条件SUMMARIZE:按日期过滤的库存扫描状态度量值

Power BI 订单扫描状态度量值实现(支持日期过滤)

问题分析

你原来使用SUMMARIZE创建计算表的方式无法满足需求,原因是:

  • 计算表是静态对象,不会响应报表中的筛选器(如日期切片),无法按日期查看对应时间点的状态
  • 计算表会累加所有历史扫描记录,订单后续完成扫描后状态直接更新为"完整",无法保留历史状态快照

解决方案:编写动态度量值

通过度量值可以响应筛选上下文(如日期筛选),实时计算每个订单在指定时间点的扫描状态。

1. 单个订单扫描状态度量值

订单扫描状态 = 
VAR 当前订单总箱数 = 
    CALCULATE(
        MAX('Table'[TotalBoxes]),
        ALLEXCEPT('Table', 'Table'[Order ID])
    )
VAR 当前已扫描箱数 = 
    CALCULATE(
        DISTINCTCOUNT('Table'[Barcode]), -- 按唯一条码去重,避免重复扫描计数
        'Table'[Received(Y/N)] = "Y"
    )
RETURN
    SWITCH(
        TRUE(),
        当前已扫描箱数 = 0 || ISBLANK(当前已扫描箱数), "缺失",
        当前已扫描箱数 = 当前订单总箱数, "完整",
        "部分完成"
    )

2. 各状态订单数量统计度量值

如果需要统计不同状态的订单数量,可以使用以下度量值:

缺失订单数 = 
CALCULATE(
    DISTINCTCOUNT('Table'[Order ID]),
    FILTER(VALUES('Table'[Order ID]), [订单扫描状态] = "缺失")
)

完整订单数 = 
CALCULATE(
    DISTINCTCOUNT('Table'[Order ID]),
    FILTER(VALUES('Table'[Order ID]), [订单扫描状态] = "完整")
)

部分完成订单数 = 
CALCULATE(
    DISTINCTCOUNT('Table'[Order ID]),
    FILTER(VALUES('Table'[Order ID]), [订单扫描状态] = "部分完成")
)

使用说明

  • 将订单扫描状态度量值拖入表格视觉对象,搭配Order ID列,再添加日期切片器/筛选器,即可查看指定日期下各订单的扫描状态。
  • 如果你的扫描记录中每条Received(Y/N)="Y"的记录对应唯一未重复扫描的箱子,可以将DISTINCTCOUNT('Table'[Barcode])替换为COUNTROWS(FILTER('Table', 'Table'[Received(Y/N)] = "Y"))。

内容的提问来源于stack exchange,提问作者Tejinder Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:53:19