クラウドエンジニアブログ

Power BIで時間旅行

human01

伊崎 敏生

前回のブログでは次回は共有について執筆予定でしたが、いろいろとお話を聞いていると、Power BI で是非使って欲しい機能が使用されていないケースがありましたので、Power BI ならではの機能を紹介します。

分析で使用する比較

分析では「先月と比較する」「去年と比較する」など、過去の特定期間と比較することは頻繁に発生すると思います。
たとえば「2016年度のデータを集計するフィルタ(条件 A)」と「昨年度の集計用(2015年度)のフィルタ(条件 B)」を定義して比較するようなことです。

条件 A: 2016年度(2016年4月~2017年3月)
条件 B: 2015年度(2015年4月~2016年3月)

しかし、このように対となるフィルタ条件を事前に準備するのは限界があります。年度全体ならまだ対応可能かもしれませんが、月単位や四半期単位のフィルタの組み合わせとなると、気が遠くなってしまいます。
しかし、もともと欲しいのは下記で表すフィルタ条件です。

条件 A: 2016年度(2016年4月~2017年3月)
条件 B: 期間:「条件 A で指定した期間の1年前」

この「条件Aで指定した期間の1年前」を実現するのが Power BI で是非使って欲しい、タイムインテリジェンス関数です。

タイムインテリジェンス関数

タイムインテリジェンス関数は Power BI で利用できる DAX 関数の一部で、集計時の時間軸をシフトさせることができます。
マイクロソフト社の DAX リファレンスを参照すると35種類もの関数が載っているので、習得が大変に感じるかもしれません。しかし、集計で頻繁に使用する期間(前月・翌月・前四半期・翌四半期・前年・翌年など)が予め定義されているためで、『「前月」の集計』を覚えることが出来たら『「翌月」の集計』も『「前年」の集計』も簡単に応用できます。

使ってみよう

論より証拠、Power BI でタイムインテリジェンス関数を体感しましょう。
シンプルなデータの方がタイムインテリジェンス関数の動きを理解し易いと思うので、今回は気象庁が公開している気温のデータを使って試してみましょう。

  1. 気温データのダウンロード
    1. Ⅰ.過去の気象データ・ダウンロードを開く
    2. Ⅱ.対象データを選択します
      1. a.地点を選ぶ
        ここでは東京都の中から「東京」を選択します。
        過去の気象データ・ダウンロード_詳細
        過去の気象データ・ダウンロード_都道府県
        (上図クリックで拡大)
        過去の気象データ・ダウンロード_都道府県
        過去の気象データ・ダウンロード_詳細
        (上図クリックで拡大)
      2. b.項目を選ぶ
        ここでは気温として「日平均気温」「日最高気温」「日最低気温」を選択します。
        過去の気象データ・ダウンロード_項目
        (上図クリックで拡大)
      3. c.期間を選ぶ
        ここでは2016/01/01~2016/12/31を選択しています。
        過去の気象データ・ダウンロード_期間
        (上図クリックで拡大)
      4. d.表示オプションを選ぶ
        • 利用上注意が必要なデータの扱い:値を表示(格納)しない。
        • 観測環境などの変化の前後で、値が不均質となったデータの扱い:観測環境などの変化前の値を表示(格納)しない。
        • ダウンロード CSV ファイルのデータ仕様:すべて数値で格納(現象あり・なし情報、品質情報は数値で格納)
        • 日付けの形式:日付リテラルで格納
        過去の気象データ・ダウンロード_表示オプション
        (上図クリックで拡大)
    3. Ⅲ.CSV ファイルとしてダウンロードします
      CSVファイルをダウンロードをクリックすると CSV ファイルがダウンロードされます。
  2. CSVファイルの編集
    分析に不要な行が含まれているので、一回 CSV ファイルを開き、1,2,3,5行目を削除し保存します。
    ダウンロードファイル_CSV
  3. Power BIに取り込む
    1. Ⅰ.Power BI Desktop を起動
    2. Ⅱ.メニューの[データを取得]-[テキスト/CSV]を選択します
    3. ダウンロードファイル_データの取込み
      (上図クリックで拡大)
    4. Ⅲ.CSV ファイルを選択するとデータがプレビューされるので[読み込み]
    5. data.csv
      (上図クリックで拡大)
    6. Ⅳ.スライサーで[年月日]を指定します
      ※ドロップダウンに設定しています
    7. ビジュアルツール
      (上図クリックで拡大)
    8. Ⅴ.カードで[最高気温(℃)]を指定します
    9. 最高気温の最大値
      (上図クリックで拡大)
    10. Ⅵ.メジャー「先月の最高気温」を下記の式で作成します
    11. 先月の最高気温 = CALCULATE( MAX([最高気温(℃)]) , PREVIOUSMONTH('data'[年月日] ) )
      1. a.CALCULATE は MAX([最高気温(℃)])のフィルタ条件を変更して再計算します
      2. b.PREVIOUSMONTH は data[年月日]で指定された月の「前月の1日~月末」までを指定します
    12. Ⅶ.カードで[先月の最高気温]を指定します
    13. 最高気温の比較
      (上図クリックで拡大)
      例ではスライサーが2016/3/3を指定しているので、前月となる2月(2016/2/1~2016/2/29)の最高気温23℃(2016/2/14記録)が表示されます

    あとは別のタイムインテリジェンス関数を変更する応用です。PREVIOUSMONTH を、NEXTMONTH に変更すると翌月、PREVIOUSYEAR に変更すると前年となります。

    タイムインテリジェンス関数はデータの中のタイムマシン

    タイムインテリジェンス関数はデータの時間軸を自由に移動することが出来ます。Excel では難しい Power BI の大きな力です
    「昨年度と比較」など過去データの集計が必要になった時、大きな助けになると思います。是非活用してください。


    次回予告


【総合】お問い合わせ

ソリューションに関する全般的なお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録