如何在Power BI中统计月初处于未关闭状态的工单数量?
解决月初未关闭工单数量统计的DAX问题
你的DAX代码计算结果不正确,核心问题出在上下文引用错误和日期逻辑偏差,以下是修正方案和问题解析:
问题解析
- 上下文引用错误:你在
Filter内部使用RELATED(Calendar[MonthEnd])和RELATED(Calendar[NextMonthstart]),但Filter会迭代Incident表的每一行,此时RELATED取的是当前迭代行对应的日历表数据,而非报表展示的目标月份上下文,导致筛选逻辑完全偏离预期。 - 日期逻辑错误:原代码要求工单关闭日期≥下月第一天或未关闭,这统计的是整月未关闭的工单,而非月初时刻未关闭的工单——月初未关闭只需要工单在当月第一天时仍未关闭即可,不管当月内是否后续关闭。
修正后的DAX代码
假设你的Calendar表包含MonthStart列(存储当月第一天的日期),使用以下度量值:
月初未关闭工单数量 = CALCULATE( COUNTROWS(Incident), -- 工单在当月第一天前已创建 Incident[createdate] < SELECTEDVALUE(Calendar[MonthStart]), -- 工单未关闭,或关闭日期在当月第一天及之后(即月初时未关) OR( ISBLANK(Incident[closedate]), Incident[closedate] >= SELECTEDVALUE(Calendar[MonthStart]) ) )
如果你的报表存在其他筛选器(比如部门、工单类型)需要保留,可添加ALLSELECTED确保日历上下文正确:
月初未关闭工单数量 = CALCULATE( COUNTROWS(Incident), ALLSELECTED(Calendar), Incident[createdate] < SELECTEDVALUE(Calendar[MonthStart]), OR( ISBLANK(Incident[closedate]), Incident[closedate] >= SELECTEDVALUE(Calendar[MonthStart]) ) )
关键说明
- 使用
SELECTEDVALUE直接获取当前报表上下文的目标月份第一天,确保筛选逻辑基于正确的时间维度。 - 筛选条件明确聚焦“月初时刻”:创建于月初前,且在月初时未关闭(未关闭/关闭日期在月初之后)。
内容的提问来源于stack exchange,提问作者Nisha
相关产品推荐
相关产品推荐

