常に前月のデータを表示したい
僕がPower BI王子の記事に出会ったのはこれがきっかけでした
他のプロジェクトでも使いまわせるようにとにかくコードだけ備忘のために記載します。
特にグローバル(+日本)で使えるようにカラム名を英語に変えるなど簡単にですが手を加えています。
日本語のほうが必要など、詳しくは元記事をご覧ください。
Calendar =
var BaseCalendar = CALENDAR( MIN( Table名[Column名]), MAX( Table名[Column名] ) )
RETURN
GENERATE(
BaseCalendar,
var BaseDate = [Date]
var YearNumber = YEAR(BaseDate)
var MonthNumber = MONTH(BaseDate)
var DateNumber = DAY(BaseDate)
var DayNumber = WEEKDAY(BaseDate, 1)
RETURN ROW(
"Year", YearNumber,
"Year_JA", FORMAT(BaseDate, "yyyy年"),
"Month_NUM", MonthNumber,
"Month_JA", FORMAT(BaseDate, "mm月"),
"Month_EN", SWITCH(MonthNumber, 1, "Jan", 2, "Feb", 3, "Mar", 4, "Apr", 5, "May", 6, "Jun", 7, "Jul", 8, "Aug", 9, "Sep", 10, "Oct", 11, "Nov", 12, "Dec", ""),
"YearMonth_NUM", FORMAT(BaseDate, "yyyymm"),
"YearMonth_JA", FORMAT(BaseDate, "yyyy年mm月"),
"Day", DateNumber,
"DayofWeek_JA", SWITCH(DayNumber, 1, "日", 2, "月", 3, "火", 4, "水", 5, "木", 6, "金", 7, "土",""),
"DayofWeek_EN", SWITCH(DayNumber, 1, "SUN", 2, "MON", 3, "TUE", 4, "WED", 5, "THU", 6, "FRI", 7, "SAT",""),
"Weeks", FORMAT(WEEKNUM(BaseDate, 1), "00th"),
"Diff_year", DATEDIFF(TODAY(), BaseDate, YEAR),
"Diff_month", DATEDIFF(TODAY(), BaseDate, MONTH)
)
)
上のコードでモデリングしたあとにカラム追加する際に使用するのは
"Month_filter" = IF( [Diff_month] = -1, "Last month", [YearMonth_NUM] )
"Fiscal_year" = if([Month_NUM]>3,[Year],[Year]-1)
"Year_filter" = IF( [Diff_year] = 0, "This FY", [Year] )