ブログ

Power BI基礎編 ExcelやWebサイトなどのマトリックスデータを取り込む方法

#Power BI #マトリックスデータ

データ分析や処理において欠かせないデータ構造の一つである「マトリックス形式のデータ」はExcelやWebサイトなど様々なシーンで使用されています。
↓以下はマトリックス形式データの例で、経済産業省の“令和3年経済センサス‐活動調査結果”の一部です。年次ごとの事業所数、従業者数などがわかりやすく表記されています。

マトリックス形式のデータは人間にとっては見やすく、分析しやすいデータになっていますが、BIツールやさまざまなシステムで使用するにはそのまま使いづらく、ひと手間が必要です。

組織内のエクセルファイルやWebページのマトリックス形式のデータも人間が見やすいように作られていることが多いと思います。Power BIの導入時期にはこのマトリックス形式のデータをどのように取り込んだらいいのか悩んでいる方、あきらめている方もいらっしゃるのではないでしょうか。
またはエクセルのマクロやピボット、Pythonを使用してPower BIにデータを取り込んでいる方もいらっしゃるのではないでしょうか。その場合は定期的にPower BIにデータを読み込ませるケースであればワンステップの手間が必要ですよね。

今回はまず身の回りのデータをPower BIで分析したいが、データがマトリックス形式で困っている方を対象にPower BIでマトリックス形式のデータを取り込む方法を紹介します。

Power BIでマトリックス形式のデータを取り込む方法

まずはPower BIでマトリックス形式のデータを“そのまま”取り込む問題点を説明します。次にマトリックス形式のデータを取り込む際の問題を解決するため、さまざまなマトリックス形式のデータを想定して、基礎編と応用編と分けて説明をします。

Power BIでマトリックス形式のデータを“そのまま”取り込む問題点

Power BIでマトリックス形式のデータを“そのまま”取り込むと、時系列やカテゴリ別のグラフなどが作成できないことが問題になります。
Power BIで取り込んだデータを時系列にグラフ化したいと思っていても、そのままではできません。
まずは解説をします。

↓例ですが、以下のようなエクセルのマトリックス形式のデータを取り込んでみます。A~Dの1月~6月の数値が並べられています。

↓Power BIでマトリックス形式のデータを取り込みました。一見、Power BIでは問題なく使用できそうですが、様々な問題があります。

↓まずは取り込んだマトリックスデータを1月~6月の時系列のグラフにしようとします。ビジュアルのグラフはX軸とY軸を設定する必要がありますので、X軸のデータは本来、月のデータ(1~6月)を入れる必要があります。しかし、マトリックス形式では月のデータ(1~6月)が列のタイトルになっているため、取り込んだデータには“月”のデータがないことになっています。X軸がないと、以下のようなグラフになってしまいますね。

ここで、Power BIの中でマトリックス形式のデータを“リスト形式”に変換する必要があります。
※リスト形式とはデータを順序付きの一覧(リスト)として表現する方法です。リスト形式は複数の要素が順番に配置されており、各要素は特定の位置(インデックス)を持っています。プログラミングやデータ処理で使用される形式です。
↓マトリックス形式をリスト形式に変換するとこのようになります。リスト形式に変換されれば、“月”がデータ化されますね。

↓“月”がデータ化されるとX軸に“月”のデータを設定することができるので、時系列のグラフが作成できます。

以上がPower BIでマトリックス形式のデータを“そのまま”読み込む問題点についての説明です。
解決策はマトリックス形式のデータを“リスト形式”に変換することです。
次にマトリックス形式のデータをリスト形式にする方法を解説します。

マトリックス形式のデータの加工方法(基礎編)

それではマトリックス形式のデータをリスト形式に変換する方法を説明します。
↓まずはPower BIで読み込んだマトリックス形式のデータのクエリを編集します。クエリを右クリック⇒クエリの編集をクリックし、Power Queryエディターを立ち上げます。

↓Power Queryを立ち上げたら、データ化したい“月”が列名になっている列を複数選択します。

↓“列のピボット解除”⇒“選択した列のみをピボット解除”を選択します。

↓ピボット解除すると列名になっていた“月”がデータになり、リスト化されました。ピボット解除された後、列名になっていた月のデータは列名“属性”になっています。Power BIで“属性”の列名が分かりにくければ列名を変更しても構いません。

↓マトリックスデータの形式をリスト形式に変換する加工は以上です。“閉じて適用”をクリックします。

↓Power BIのビジュアル、“積上げ縦棒グラフ”を選択し、X軸に先ほど作成した“月”の列を選択、Y軸に値、凡例は列1を選択すると以下のように時系列のグラフを作成することができました。

↓ここで、時系列データを作成する場合、“月”の列のデータ形式を“日付”に変換すると、時系列のグラフ作成が便利になります。“日付”データ形式にしたい列を選択し、日付をクリックします。

↓月のデータが、日付に変更されました。日付に変更するとグラフ作成時に並び替えなどせずに、日付順でグラフを作成してくれるようになります。

マトリックス形式のデータの加工方法(応用編)

次に応用編です。組織内にあるエクセルファイルやWebページ上のマトリクス形式のデータは必ずしも先ほど解説したような加工しやすいデータになっているとは限りません。
↓先ほど解説したデータ、上位1行目がそれぞれの列のタイトルになっているケース

↓以下のように上位の2行が列名になっているケースも想定されます。こちらの方が割合としては多いかもしれません。

ご安心ください。このような場合でも、マトリックス形式のデータをリスト形式に変換することは可能です。

↓まずは上位2行がタイトルになっているマトリックス形式のデータを読み込みます。本来であれば1月だけでなく、2月と3月も第1半期なのですが、このままではこのデータは使用できません。まずは先ほど解説した、上位2行を上位1行のマトリックス形式に加工します。まずは入れ替えをクリックします。

↓入れ替えをクリックすると以下の通り、行と列が入れ替わります。今回、上位2行を1行にするためには、Column1とColumn2をマージさせる必要があります。その前に、Column2の2月と3月にはColum1の“第1四半期”のデータが入っていません。マージの前に、Column1の不足しているデータを整理する必要があります。

↓Column1に第1四半期、第2四半期のデータを入れます。フィルを選択し、“下へ”をクリックします。

↓下方向にフィルをすると、nullになっていた箇所にデータが入ったことが確認できます。フィルは対象となる行がnullで上位の行にデータが入っている場合、上位のデータをコピーするようになっています。

↓次に上位1行にまとめたいColumn1とColumn2をマージさせます。列を選択し、“列のマージ”をクリック、区切り記号を選択し、OKをクリックします。今回は区切り記号をコロンにしました。データにはない記号を選択する必要があるので要注意ですね。

↓列がマージされていることが確認できます。列のマージができたら、再度“入れ替え”をクリックし、マトリクス表に戻します。

↓入れ替え後、マトリックス表の1行目をヘッダー(列名)にします。“1行目をヘッダーとして使用”をクリックします。

↓あとは先ほど解説したピボット解除を使用して、リスト形式に変換します。

↓属性を四半期と月に分割します。

↓以上でマトリクス形式からリスト形式への変換は完了です。

まとめ

Power BIでマトリックス形式のデータを“そのまま”取り込んでも効果的・効率的に使用ができない
Power BIでマトリクス形式を使用する際はリスト形式に変換する必要がある
マトリックス形式からリスト形式への変換はPower Queryエディター上で加工する。
① ピボット解除でリスト化する
② 上位2行がタイトルの場合は“入れ替え”⇒“フィル”(必要であれば)⇒“列を結合”⇒“入れ替え”⇒①の手順でリスト化する

<Power BIハンズオンセミナー>
弊社ではPower BIをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら

<Power BIの導入支援>
Power BIの導入支援を行っています。こちらもぜひお気軽にお問い合わせください。
>>Power BIの導入支援の詳細はこちら

<PowerBIの入門書を発売中!>
Power BIの導入から基本的な使い方・活用方法の基礎などをわかりやすく解説した書籍も販売しています。
>>目次公開中!書籍の詳細はこちら

CONTACT
お問い合わせ

ご相談やご依頼、病院マスタなどについてのお問い合わせはこちらのお問い合わせフォームから。

サービスなどについてのお問い合わせ 病院マスタについてのお問い合わせ

メールお問い合わせ