PBI Desktop用ADDCOLUMNS为CALENDARAUTO生成DAX计算表Date列报错
报错原因说明
报错的核心是DAX标准时间智能函数的参数规则限制:
STARTOFMONTH()、STARTOFYEAR()这类时间智能函数,要求入参必须是完整的基表日期列引用,函数本身依赖筛选上下文工作,需要识别整个日期列的结构来调整筛选范围,才能返回对应结果。- 你在
ADDCOLUMNS()中引用的[Date]属于行上下文下的单个日期标量值,不符合时间智能函数的入参要求,因此触发了参数类型错误、找不到Date列的报错提示。
你修正后使用的EOMONTH([Date],-1) + 1、DATE(YEAR([Date]),1,1)属于普通标量日期函数,支持直接接收行上下文的单个日期值进行计算,不需要依赖完整日期列的筛选上下文,因此可以正常运行。
如果确实需要使用时间智能函数实现相同逻辑,可以通过CALCULATE()将行上下文转换为筛选上下文满足参数要求,示例如下:
"Mo_startDate", CALCULATE(STARTOFMONTH('你当前日期表的名称'[Date]))
不过这种写法执行效率不如你已经在用的标量函数写法,更推荐你现有的修正方案。
内容的提问来源于stack exchange,提问作者SherlockSpreadsheets
相关产品推荐
相关产品推荐

