我正在尝试使用PowerBI中的DAX生成一个表以用作日期表,但是在这种情况下,我试图生成一个四分之一列表,而不是传统的天数列表,特别是一刻钟。
我尝试过使用CALENDAR生成日期,然后将其转换为季度,但是我似乎找不到找到将生成的日期转换为季度第一天的方法。
QTRMatrix =
ADDCOLUMNS(
STARTOFQUARTER(CALENDAR(MIN(Bookings[InvoiceMonth]),TODAY())),
"Period", "Quarter"
)
这给了我一个错误说明:
“函数'STARTOFQUARTER'不能与ADDCOLUMNS或SUMMARIZE函数添加的列一起使用。”
我也尝试了在没有ADDCOLUMNS的情况下进行此操作,该错误会产生与上述相同的错误。
有人可以建议我如何做到这一点吗?
答案 0 :(得分:0)
以下DAX将产生一个非常有用的日历表:
只需为您的时间范围创建两个量度:
Min Date :=
MIN( ‘Table’[Date] )
Max Date :=
MAX(‘Table’[Date] )
然后根据以下日期构建日历:
Dates :=
VAR MinDate = [Min Date]
VAR MaxDate = [Max Date]
VAR BaseCalendar =
CALENDAR ( MinDate, MaxDate )
RETURN
GENERATE (
BaseCalendar,
VAR BaseDate = [Date]
VAR YearDate =
YEAR ( BaseDate )
VAR MonthNumber =
MONTH ( BaseDate )
VAR YrMonth =
100 * YEAR ( BaseDate )
+ MONTH ( BaseDate )
VAR Qtr =
CONCATENATE ( "Q", CEILING ( MONTH ( BaseDate ) / 3, 1 ) )
VAR YrMonthQtr =
100 * YEAR ( BaseDate )
+ MONTH ( BaseDate )
& CONCATENATE ( "Q", CEILING ( MONTH ( BaseDate ) / 3, 1 ) )
VAR YrMonthQtrDay =
100 * YEAR ( BaseDate )
+ MONTH ( BaseDate )
& CONCATENATE ( "Q", CEILING ( MONTH ( BaseDate ) / 3, 1 ) )
& DAY ( BaseDate )
RETURN
ROW (
"Day", BaseDate,
"Year", YearDate,
"Month Number", MonthNumber,
"Month", FORMAT ( BaseDate, "mmmm" ),
"Year Month", FORMAT ( BaseDate, "mmm yy" ),
"YrMonth", YrMonth,
"Qtr", Qtr,
"YrMonthQtr", YrMonthQtr,
"YrMonthQtrday", YrMonthQtrDay
)
)
要获取季度的第一天,只需添加一个计算列以标记每个季度的第一天。