Power BI DAX:如何在Backlog计算中正确加入状态排除条件
解决方案
直接调整ClosedIncidents的过滤逻辑,并新增对取消工单的单独统计,确保Backlog计算逻辑准确:
Backlog = VAR CreatedIncidents = CALCULATE( COUNT(Tabla_INC[Opened_WithoutTime]), FILTER( ALL(Tabla_INC), Tabla_INC[Opened_WithoutTime] <= MAX(Tabla_Fechas_Incidencias[Date]) && Tabla_INC[Assignment_Group] = "N1 SYSTEMS" ) ) VAR ClosedIncidents = CALCULATE( COUNT(Tabla_INC[Closed_WithoutTime]), FILTER( ALL(Tabla_INC), Tabla_INC[Closed_WithoutTime] <= MAX(Tabla_Fechas_Incidencias[Date]) && Tabla_INC[Assignment_Group] = "N1 SYSTEMS" && Tabla_INC[Status] <> "Cancelled" -- 正确添加排除取消工单的条件 ) ) VAR ResolvedCases = CALCULATE( COUNT(Tabla_INC[Resolved_WithoutTime]), FILTER( ALL(Tabla_INC), ISBLANK(Tabla_INC[Closed_WithoutTime]) && Tabla_INC[Assignment_Group] = "N1 SYSTEMS" && Tabla_INC[Status] <> "Cancelled" -- 补充排除条件,避免异常数据干扰 ) ) VAR CancelledIncidents = CALCULATE( COUNT(Tabla_INC[Opened_WithoutTime]), FILTER( ALL(Tabla_INC), Tabla_INC[Opened_WithoutTime] <= MAX(Tabla_Fechas_Incidencias[Date]) && Tabla_INC[Assignment_Group] = "N1 SYSTEMS" && Tabla_INC[Status] = "Cancelled" ) ) VAR Result = CreatedIncidents - ClosedIncidents - ResolvedCases - CancelledIncidents RETURN MAX(0, Result)
逻辑说明
- CreatedIncidents:保留原有逻辑,统计所有创建的工单(包含后续取消的),符合业务需求。
- ClosedIncidents:添加
Status <> "Cancelled"条件,仅统计正常关闭的工单,排除取消类工单。 - ResolvedCases:补充排除取消状态的条件,虽然业务上已解决工单不会是取消状态,但可避免异常数据影响计算结果。
- CancelledIncidents:新增变量统计已取消的工单,这类工单已被计入创建总数,但不应留在Backlog中,因此需要从最终结果中扣除。
- Result:调整计算公式,减去取消工单数量,确保Backlog仅包含未关闭、未解决且未取消的有效工单。
可选调整(根据数据模型适配)
如果取消工单的Closed_WithoutTime字段有值,可将CancelledIncidents的统计改为基于关闭时间:
VAR CancelledIncidents = CALCULATE( COUNT(Tabla_INC[Closed_WithoutTime]), FILTER( ALL(Tabla_INC), Tabla_INC[Closed_WithoutTime] <= MAX(Tabla_Fechas_Incidencias[Date]) && Tabla_INC[Assignment_Group] = "N1 SYSTEMS" && Tabla_INC[Status] = "Cancelled" ) )
内容的提问来源于stack exchange,提问作者Pablo Sánchez
相关产品推荐
相关产品推荐

