DAX 计算 table 列错误 - PBI 桌面 ADDCOLUMNS() 到 CALENDARAUTO()

DAX calculated table column error - PBI Desktop ADDCOLUMNS() to CALENDARAUTO()

我正在尝试使用 ADDCOLUMNS()CALENDARAUTO() table 在 PBI Desktop 中创建计算 table 的 DAX。所有计算的列都很好用,除了随机的少数计算在使用 [Date] 列时出现问题并给出错误:

Column 'Date' cannot be found or may not be used in this expression.

Parameter is not the correction type

本次计算(加上其他十几个)计算成功:

"SortDesc_Date", - DATEDIFF(date(9999, 12, 31), [Date], DAY)

这3次计算失败:

"Mo_startDate", STARTOFMONTH([Date])
"Yr_startDate", STARTOFYEAR([Date])
"SortDesc_YrMo", - DATEDIFF(date(9999, 12, 31), STARTOFMONTH([Date]), MONTH)

有人知道为什么这些列有计算错误吗?


脚本(更新)

在更正列以替代时间智能函数的使用后工作。

Calendar (v3) = 
-- var_MoName = FORMAT([Date], "MMM")
-- var_MoStartDate = EOMONTH([Date],-1) + 1
ADDCOLUMNS (
    CALENDARAUTO (),
    "DateKey", FORMAT([Date], "YYYY") & FORMAT([Date], "MM") & FORMAT([Date], "DD")
    , "Year", YEAR([Date])
    , "Mo", MONTH([Date]) 
    , "day", DAY([Date])
    , "Mo Name", FORMAT([Date], "MMM")
    , "Mo-Yr", FORMAT([Date], "MMM") &"-"& FORMAT([Date],"YY")
    , "Mo_startDate", EOMONTH([Date],-1) + 1
    , "Yr_startDate", DATE(YEAR([Date]),1,1)
    , "Qtr", QUARTER([Date])
    , "Qtr Name", "Qtr " & FORMAT([Date], "Q")
    , "Yr Name", "YR " & FORMAT([Date], "YYYY")
    , "Mo_endDate", EOMONTH([Date],0) 
    , "SortDesc_YrMo", - DATEDIFF(date(9999, 12, 31), EOMONTH([Date],-1)+1, MONTH)
    , "SortDesc_Date", - DATEDIFF(date(9999, 12, 31), [Date], DAY)
    , "Date (DESC)", [Date]
    , "Mo-Yr (DESC)",  FORMAT([Date], "MMM") &"-"& FORMAT([Date],"YY")
)

STARTOFMONTH and STARTOFYEAR 是时间智能函数,它期望日期 作为第一个参数而不是单个日期值。它们旨在用于处理过滤上下文而不是单个日期值的度量。

您可以改用以下定义:

"Mo_startDate", EOMONTH ( [Date], -1 ) + 1

"Yr_startDate", DATE ( YEAR ( [Date] ), 1, 1 )