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

DAX计算指定时间段流失患者数结果错误,求正确表达式

正确DAX表达式实现指定时间段流失患者统计

原代码问题分析

你提供的DAX逻辑完全偏离需求:它筛选了All Dates表中当前筛选时间段往前推2年的日期区间,然后统计该区间内有就诊记录的患者ID,这本质是在统计2年前有就诊的患者数量,和“当前时间段内的流失患者”定义完全不符。

正确DAX表达式

根据“2年未就诊即为流失患者”的定义,我们需要统计在指定时间段内无就诊记录,且最后一次就诊日期早于该时间段结束日往前推2年的患者数量,以下是实现代码:

流失患者数量 = 
VAR 当前时间段结束日 = MAX('All Dates'[Date])
VAR 两年前日期 = 当前时间段结束日 - 730
VAR 当前时间段开始日 = MIN('All Dates'[Date])
RETURN
CALCULATE(
    DISTINCTCOUNT(vw_VisitsDentist[PracticeIDPatientID]),
    FILTER(
        VALUES(vw_VisitsDentist[PracticeIDPatientID]),
        // 条件1:患者最后一次就诊日期早于两年前
        CALCULATE(MAX(vw_VisitsDentist[VisitDate])) <= 两年前日期
        // 条件2:当前时间段内无任何就诊记录
        && CALCULATE(COUNT(vw_VisitsDentist[VisitDate]), 
                     vw_VisitsDentist[VisitDate] >= 当前时间段开始日 
                     && vw_VisitsDentist[VisitDate] <= 当前时间段结束日) = 0
    ),
    ALL('All Dates')
)

代码逻辑说明

  1. 变量定义:先获取当前筛选时间段的起止日期,以及结束日往前推2年的日期节点。
  2. 患者筛选:
    • 对每个患者,计算其最后一次就诊日期,判断是否早于两年前的节点;
    • 同时检查该患者在当前筛选时间段内是否没有任何就诊记录;
  3. 统计数量:用DISTINCTCOUNT统计同时满足两个条件的唯一患者ID数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:32:30