我试图使用ADDCOLUMNS()
到CALENDARAUTO()
表在PBI中创建DAX计算表。所有计算的列都工作得很好,除了随机的少数计算在使用[Date]
列时有问题,并给出了一个错误:
列“Date”无法在此表达式中找到或不能使用。 参数不是修正类型。
这个计算(加上其他十几个计算)是成功计算的:
"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")
)
发布于 2021-11-05 14:22:15
STARTOFMONTH和斯泰托夫是将日期列作为第一个参数而不是单个日期值的Time函数。它们被设计为在操作筛选上下文的度量中工作,而不是在单个日期值上。
您可以使用以下定义:
"Mo_startDate", EOMONTH ( [Date], -1 ) + 1
"Yr_startDate", DATE ( YEAR ( [Date] ), 1, 1 )
https://stackoverflow.com/questions/69854578
复制相似问题