DAX Calculate度量返回1而非0的问题排查
问题原因分析
你的DAX逻辑存在上下文筛选的问题:
- 当表格行处于「Med」等级时,
MAX('Tickets'[Backlog Period])会自动继承当前行的筛选上下文(仅包含「Med」等级的工单数据),计算出的最大值是03/11/23,而非全局最新的04/11/23。 - 因此
CALCULATE统计的是「Med」等级且积压周期为03/11/23的工单数量,结果自然是1,而非你期望的0。
修正后的DAX函数
VAR LatestPeriod = CALCULATE(MAX('Tickets'[Backlog Period]), ALL('Tickets'[Backlog Age])) RETURN IF ( CALCULATE(COUNT('Tickets'[ID]), 'Tickets'[Backlog Period] = LatestPeriod) = BLANK(), 0, CALCULATE(COUNT('Tickets'[ID]), 'Tickets'[Backlog Period] = LatestPeriod) )
关键修改说明
- 用
VAR定义LatestPeriod变量,通过ALL('Tickets'[Backlog Age])清除「积压时长等级」的筛选上下文,确保获取的是全局所有工单中的最新积压周期(04/11/23)。 - 将返回的"0"改为数字0,避免字符串与数字混合导致的格式异常。
内容的提问来源于stack exchange,提问作者Serge Inácio
相关产品推荐
相关产品推荐

