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

Power BI带条件的TicketId去重计数及DAX度量创建需求

Power BI DAX 度量实现方案

现有基础信息

数据集字段:Date、TicketId、Step、Result
已创建的DAX度量:

  • LogDistcount_:统计去重工单ID数量
    LogDistcount_ = DISTINCTCOUNT(Logging[TicketId])
    
  • Errors_dist:统计Step=8且Result为Error的去重工单ID数量
    Errors_dist = CALCULATE(Logging[LogDistcount_], Logging[Step] = 8)
    

需求1:统计最终结果为Successfull且历史存在Error记录的去重TicketId数量(支持钻取)

度量代码

Success_With_Previous_Error = 
VAR Ticket_Status_Summary = 
    ADDCOLUMNS(
        DISTINCT(Logging[TicketId]),
        // 获取当前工单的最后结果(仅限定当前工单的记录范围)
        "@LastResult", CALCULATE(MAX(Logging[Result]), ALLEXCEPT(Logging, Logging[TicketId])),
        // 判断当前工单是否有过Error记录
        "@HasErrorHistory", CALCULATE(COUNTROWS(FILTER(Logging, Logging[Result] = "Error")), ALLEXCEPT(Logging, Logging[TicketId])) > 0
    )
RETURN
    COUNTROWS(
        FILTER(
            Ticket_Status_Summary,
            [@LastResult] = "Successfull" && [@HasErrorHistory] = TRUE()
        )
    )

说明

  • 用ALLEXCEPT限定计算范围仅针对当前工单,避免跨工单干扰
  • 生成的临时表包含每个工单的最终状态和错误历史,筛选后统计数量,支持钻取到TicketId层级

需求2:统计最终结果仍为Error的去重TicketId数量

度量代码

Final_Error_Tickets = 
VAR Ticket_Last_Status = 
    ADDCOLUMNS(
        DISTINCT(Logging[TicketId]),
        "@LastResult", CALCULATE(MAX(Logging[Result]), ALLEXCEPT(Logging, Logging[TicketId]))
    )
RETURN
    COUNTROWS(
        FILTER(
            Ticket_Last_Status,
            [@LastResult] = "Error"
        )
    )

说明

  • 基于ALLEXCEPT锁定当前工单的记录,获取其最终结果后筛选统计

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:40:23