如何用DAX按月统计当月出院患者的总LengthOfStay求和
问题原因说明
你原有DAX的筛选逻辑仅匹配当前上下文年份入院、且入院月份小于等于当前上下文月份的患者,没有限制出院日期维度,完全不符合「统计当月出院的所有患者住院时长总和」的需求。
正确实现方案
方案1:表中已预计算出院年、出院月字段时使用
CM LOS Days = CALCULATE( SUM(admissiontbl[LengthOfStay]), ALLEXCEPT(admissiontbl, admissiontbl[AdYear], admissiontbl[Admonth]), admissiontbl[DisYear] = MAX(admissiontbl[AdYear]), admissiontbl[DisMonth] = MAX(admissiontbl[Admonth]) )
方案2:无需预计算字段,直接用日期函数判断
CM LOS Days = VAR CurrentStatYear = MAX(admissiontbl[AdYear]) VAR CurrentStatMonth = MAX(admissiontbl[Admonth]) RETURN CALCULATE( SUM(admissiontbl[LengthOfStay]), ALLEXCEPT(admissiontbl, admissiontbl[AdYear], admissiontbl[Admonth]), YEAR(admissiontbl[DischargedDate]) = CurrentStatYear, MONTH(admissiontbl[DischargedDate]) = CurrentStatMonth )
逻辑说明
ALLEXCEPT保留了你要求的入院年月维度筛选规则,确保统计维度和你设置的行上下文匹配- 筛选条件仅限制出院日期的年月等于当前统计的年月,不管患者入院时间是上年还是上月,只要在当月出院都会被纳入统计
- 可直接返回你要求的统计结果,无需额外调整字段配置
内容的提问来源于stack exchange,提问作者Mahmow
相关产品推荐
相关产品推荐

