DAX度量引用Date日期表时语法报错,请求问题排查解决
问题原因及修正方案
直接语法错误原因
你用的日历表名叫Date,但Date是DAX的保留关键字,直接写Date[Date]会让DAX无法正确识别表名,必须用单引号把表名括起来,写成'Date'[Date]——这就是你收到“The syntax for '[Date]' is incorrect”报错的核心原因。
逻辑上的额外问题(语法修复后仍需调整)
你是在Date表的计算列里写的公式,但用了MAX('Date'[Date])——这个函数会返回整个Date表的最大日期,而不是当前行对应的日期,完全达不到“统计当前日期过去30天内完成治疗次数”的需求。正确的做法是直接引用当前行的日期,也就是用'Date'[Date](计算列的上下文默认就是当前行的日期值),或者用EARLIER('Date'[Date])来明确指定取当前行的日期。
修正后的可用DAX公式
方案一:直接筛选日期范围
Completed Treatments = CALCULATE( COUNTROWS(Treatments), Treatments[Treatment Status] = "Completed", Treatments[Treatment Date] >= 'Date'[Date] - 30, Treatments[Treatment Date] <= 'Date'[Date] )
方案二:用DATESINPERIOD函数简化
Completed Treatments = CALCULATE( COUNTROWS(Treatments), Treatments[Treatment Status] = "Completed", DATESINPERIOD( Treatments[Treatment Date], 'Date'[Date], -30, DAY ) )
补充提示
如果你的Date表和Treatments表已经通过日期字段建立了关系,上面的公式也能正常工作——因为我们直接筛选了Treatments的日期列,避免了关系带来的上下文转换干扰,更适配计算列的场景。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

