2016/03/19

Power BI - 25 - Power BI Desktop で タイム インテリジェンス関数

タイム インテリジェント関数に必要な日付テーブルとそのリレーションを準備したので実際に使ってみる。
スキーマはこんな感じで、最終的には "受注額" の集計についていろいろと。


指定した間隔をシフトした日付を返すのではなく、現在のコンテキストに対応する 前年 翌年 前月 翌月などの日付 "すべて" を含むテーブルを返す。
どのような範囲が帰るのかを、
LASTDATE  ( 'カレンダー[日付]' )
FIRSTDATE  ( 'カレンダー[日付]' )
という感じで確認した。

PREVIOUSYEAR (MSDN - PREVIOUSYEAR 関数)
PREVIOUSQUARTER (MSDN - PREVIOUSQUARTER 関数)
PREVIOUSMONTH (MSDN - PREVIOUSMONTH 関数)
PREVIOUSDAY (MSDN - PREVIOUSDAY 関数)

前年 / 前四半期 / 前月 の日付をすべて返す。


NEXTYEAR (MSDN - NEXTYEAR 関数)
NEXTQUARTER (MSDN - NEXTQUARTER 関数)
NEXTMONTH (MSDN - NEXTMONTH 関数)
NEXTDAY (MSDN - NEXTDAY 関数)

翌年 / 翌四半期 / 翌月 の日付をすべて返す。
なので、

受注額 =
SUM ( '受注'[明細計] )

としたとき、CALCULATE 関数でそれぞれの受注額を計算する。

受注額(前年) =
CALCULATE ( [受注額], PREVIOUSYEAR ( 'カレンダー'[日付] ) )

受注額(前四半期) =
CALCULATE ( [受注額], PREVIOUSQUARTER ( 'カレンダー'[日付] ) )

受注額(前月) =
CALCULATE ( [受注額], PREVIOUSMONTH ( 'カレンダー'[日付] ) )

受注額(翌年) =
CALCULATE ( [受注額], NEXTYEAR ( 'カレンダー'[日付] ) )

受注額(翌四半期) =
CALCULATE ( [受注額], NEXTQUARTER ( 'カレンダー'[日付] ) )

受注額(翌月) =
CALCULATE ( [受注額], NEXTMONTH ( 'カレンダー'[日付] ) )




DATESYTD (MSDN - DATESYTD 関数)
DATESQTD (MSDN - DATESQTD 関数)
DATESMTD (MSDN - DATESMTD 関数)

年 / 四半期 / 月 の初日からの日付を返す。


受注額(年累計) =
CALCULATE ( [受注額], DATESYTD ( 'カレンダー'[日付] ) )

受注額(四半期累計) =
CALCULATE ( [受注額], DATESQTD ( 'カレンダー'[日付] ) )

受注額(月累計) =
CALCULATE ( [受注額], DATESMTD ( 'カレンダー'[日付] ) )

累計についてはもっと奥が深いけれども。

受注額(年累計) =
TOTALYTD ( [受注額], 'カレンダー'[日付] )

受注額(四半期累計) =
TOTALQTD ( [受注額], 'カレンダー'[日付] )

受注額(月累計) =
TOTALMTD ( [受注額], 'カレンダー'[日付] )

でも同じ結果になる。

Power BI Desktop だけのことを考えるとビジュアルだけで累計を表せるものがあるわけだから特段にメジャーを用意しなくてもよいこともあるのでしょう。

0 件のコメント: