PowerBIでマップ表現やってみた~データ準備編~

PowerBIでマップ表現やってみた~データ準備編~ | Tableau-id Press -タブロイド-
PowerBI_eye

こんにちは!湯浅です!

いつもイベント告知ばかりしておりますが、今日は初めてPowerBIPowerQuelyを使用してMap表現をしてみた際のやり方についてまとめてみます。

今回は前編として、データの加工関連をまとめてみました!
(こちら、社内の識者に教えていただきながらやった忘備録とも言います。)

 

データについて

今回使用したデータはアメリカの物価の推移に関するデータです。

United States」の「All items」を基準に、それより高いか安いかを数値化しています。

 

作ってみたBI

基準となっている「United States」を緑色で表現し、それより安い州は水色、高い州は赤色になっています。なんとなくPowerPointっぽい色味で親しみやすさを感じますね。

左側と右側で別の年を比較できるようにしています。

左側のマップについて、物価の高い・安い州TOP10も掲載したので、将来どの州で暮らしていけば物価がどのくらいなのか想像しやすいものになったのではないでしょうか!

 

データの接続について

では、まず初めにPowerBIではどのようにデータを接続していくかをまとめていきます。以下の画像はTOP画面です。

今回はExcelデータを用いましたがSQLサーバーから接続したりもできますし、空のテーブルにデータを入力していくことも可能なようです。
下図赤四角のいずれかからデータを選びます。今回は中央の目立つ部分からしてみます。

すると、おなじみのフォルダの画面(下図)が現れますので、こちらで必要なデータを選択します。

データを選択すると下図のSheet一覧が左側に表示されます。
提案されたテーブルというのは過去同じデータを編集したものが表示されているようです。

Sheet一覧から選択するとプレビューが現れます。

・読み込み⇒データを加工せず直接表やグラフの作成ができます。
・データの変換⇒Power Queryが立ち上がり、データ編集が可能です。

今回は青四角の「データの変換」を使用します。ここで、「読み込み」を選択するとデータの接続は完了です。

次の項からはデータの変換について記録していきます。

 

Power Queryでのデータの編集について

「データの変換」をクリックすると下図のようにPower Queryが立ち上がります。

1行目をヘッダーにする

まずはヘッダーが1行目になってしまっているため、下図の「1行目をヘッダーとして使用」を選択します。
(ヘッダーを1行目として使用することも可能です。同じ場所で切り替えができます。便利~!)

ヘッダーが元1行目と置き換わりました!

ここで注意したいのがデータ型です。ヘッダー名の先頭にABCとか123が並んでいます。
123は数値型、ABCは文字列型です。(他の種類もあるようですが、ここでは割愛します。)

 

横持ちデータを縦持ちデータに変換

続いて、Yearが横持ちになっているので、集計のために縦持ちにしていきます。
まず縦持ちにしたい範囲を選択していきます。

選択した範囲はグレーになります。

黄色の部分(ヘッダー)で右クリックし、「列のピポット解除」を選択します。

やった!縦持ちデータになりました!しかし、ヘッダーがわかりづらいものになってしまいました。

ヘッダー部分で右クリックし、「名前の変更」を選びます。ここでは属性をYear、値をPriceに変更します。

分析しやすそうなデータに変換できました。「閉じて適用」を選択し、データの変更を反映させます。

フィールドにデータが反映されました!これで縦持ちデータへの変換は完了です。

 

IF判定をやってみる

今回のデータはUnited States100とした場合の物価の指数(ここではPriceの値)を物価の指標としています。そこで、その物価指数が基準である100より上なのか下なのかを判定してみることにしました。

今回使用した条件式は以下です。

Decision = IF([Price]=100, “基準値“, IF([Price]>100, “基準値以上“, “基準値以下“))

上記のDecisionはカラム名です。
Price列が100なら「基準値」、100以上なら「基準値以上」、それ以外なら「基準値以下」と表示してね、という内容です。
TableauでもIFELSEを用いて簡単にできそうな条件です。
PowerQueryではExcelで用いられる関数をほぼそのまま使用できて大変便利でした。

追加方法は以下の通りです。
まず、Sheet名のところで右クリックし、「新しい列」を選択します。

以下のように入力項目が出てきますので、先ほどのIF判定式を入力していきます。

入力したのが以下です。

Decisionとして判定されたのが以下のカラムです。
基準値なのか、それ以上なのか、以下なのかがきちんと判定されています!

データの準備はこれで終わりです。

最後に

データの加工はとっても簡単にできました。Excelと同じ感覚で数式を使用できるところはいいな、と思います。

次回後編として実際のMap作成を行う予定です。
後編もよろしくお願いします!