- データ分析を始めたいが特に使うツールが決まっていない方
- Power BIでどんなことができるか知りたい方
- Power BIを使い始めたばかりで基本から学びたい方
▶ 中間テーブルを作ってリレーションシップの設定をする方法はこちらをご覧ください
▶ カレンダーテーブルの作成方法はこちらの投稿をどうぞ
はじめに
今回はPower BIで日付を扱うときのTipsです。日付の処理をしているときに、「階層化しなくてよいのにな」とか「海外のデータだから時差があるんだよな」となったことありませんか?日付が自動で階層化されるのは便利な面もありますが、ときには階層化せずに使いたいときもありますよね。また、海外のデータだと時差の補正をするときもあります。これらの処理の仕方を基本から解説します。
自動でおこなわれる日付の階層化をやめる
サンプルデータ
前回、スライサーの相互作用を解説した際に利用したデータを使うことにしましょう。
▶ スライサーの相互作用に関する記事はこちらをどうぞ
次のような各動物園の日別の売上データです。

日付の階層化をやめる
日次の売上を集計したテーブルを表示してみましょう。まず、「視覚化」メニューから「テーブル」を選択しましょう。

次に、「列」のエリアに「年月」と「売上」をそれぞれドラッグ&ドロップします。

列項目の「日付」をみると、「年」「四半期」「月」「日」のように階層化されています。これが便利な場合もあるのですが、テーブルデータは次のように表示されてしまいます。

もちろん、列項目から「月」と「日」を選んで表示することもできますが、もともとの「日付」の項目を使うことはできないのかな、と思いませんか?
できます!!
先ほどの「視覚化」の「列」エリアに設定した「日付」の項目上で右クリックをしてください。すると、次のような右クリックメニューが表示されます。

すると、「日付の階層」にチェックがついているのがわかります。階層表示が不要な場合は、上の「日付」の方を選択します。(※「日付」はフィールド名です。適宜、読み替えてください)
すると、以下のようにテーブルデータが表示させることができます。

時差の補正をする
海外のシステムから吐き出したデータは、現地のタイムゾーンとなっていて、時差の補正をしなければならないことありませんか?こうした場合も、Power BIでは簡単に処理することができます。
今度は次のようなTimeStampのデータがあったとしましょう。

ずいぶん早朝のログですね。実は、これは日本とは9時間時差のあるとしましょう。(データは現地時間で日本は現地より9時間進んでいるとします)
このようなときに日本時間での表記をしたい、ということはありませんか?Power BIならこのような場合も簡単に処理することができます。処理はPower Queryでおこないます。
Power Queryは、「ホーム」メニューの「クエリ」リボン内の「データの変換」をクリックすると呼び出せます。

ここで、「列の追加」メニューの「全般」リボン内の「カスタム列」を選択しましょう。

すると「カスタム列」のダイアログが表示されます。

時差を補正した新しい列を作るので、まずは「新しい列名」を設定しましょう。ここでは「+9:00」という列名にしておきます。

次に「カスタム列の式」の部分で時差の補正をおこないます。まず初めにベースとするフィールドを指定します。右側の「使用できる列」からフィールドを選択して「挿入」することができます。(ダブルクリックでも挿入できます)次に、
+ #duration(0,9,0,0)
を指定します。これは、#duration(day,h,m,s)の書式です。今回は9時間の補正なので#duration(0,9,0,0)とします。すると、新たな列「+9:00」ができました。

ただ、新しく作成した「+9:00」列は正しく型が認識されていないようですね。フィールド名の横の「ABC」「123」の部分をクリックして、表示されるメニューから「日付/時刻」を選びましょう。

これで出来上がりです。いかがですか?簡単にできましたね。
まとめ
今回はPower BIで日付を扱う時によく遭遇する、「日付の階層」を解消する方法と「時差の補正方法」について解説しました。どちらも知っていれば、無茶苦茶簡単でしたね。(でも知らないとなかなか難しい)
コメント