![azblob://2023/04/25/eyecatch/2023-04-26-power-query-good-tool-goodbye-macro-000.jpg](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/2023/04/25/eyecatch/2023-04-26-power-query-good-tool-goodbye-macro-000.jpg)
こんにちは、あおいです。
最近、趣味を食に全振りすぎてエンゲル係数がバグっているのでやばい、、、
さて、Power BIでExcelのデータを可視化したいけど、以下のような1レコード複数行、複数列のExcel表で扱いづらい…なんて経験ありませんか?
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-001.png)
当然、このままでは非常に扱いづらいので、以下のようにリスト形式のデータテーブルに変換する必要があります。
でも、なんかめっちゃ難しそうですよね……
ご安心ください。Power Queryを使うことで、わずか数クリックのマウス操作で、綺麗なリスト形式のデータテーブルに変換できます。マクロやVBAで小難しいプログラムを組み必要は一切ないです。
そこで、今回はPower Queryで1レコード複数行、複数列のExcel表をリスト形式に変換する方法を紹介したいと思います。
[データを取得]から対象のExcelを選択して、[データの変換]をクリックします。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-003.png)
しばらくすると、Power Queryエディターが起動します。
画面右側の適用したステップに[変更された型]と[昇格されたヘッダー]が表示されていますが、この時点では不要なので両方削除します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-004.png)
また、テーブルに不要な空白行もあるので、[行の削除]=>[下位の行の削除]を選択して削除します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-005.png)
インデックス列を追加し、追加したインデックス列を選択した状態で[標準]⇒[除算(整数)]をクリックし、値に2を入力します。今回の例のExcel表は1レコード2行なので、2で割る必要があります。もし、1レコード3行の場合は3で割ります。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-006.png)
再度、追加したインデックス列を選択した状態で[標準]⇒[剰余]をクリックし、値に2を入力します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-007.png)
このようにすることで、整数除算がレコード番号、剰余が1レコード中の1行目,2行目,,,という行番号、を表現することができます。列名は分かりやすいように[レコードNo][行No]と変更します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-008.png)
「伝票一覧」のクエリを右クリックで[参照]を選択して、新規クエリを作成します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-009.png)
[行No]列が0のデータを抽出したいのでフィルターで絞り込み、[1行目をヘッダーとして使用]を選択します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-010.png)
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-011.png)
「行No:1」のクエリに関しても同様の手順で抽出します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-012.png)
伝票一覧のクエリを右クリックで[参照]を選択して、レコードNo以外の列を削除します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-013.png)
[重複の削除]を選択し、フィルターで不要なレコードNoを非表示にします。今回は0を非表示にします。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-014.png)
最後に、[クエリのマージ]で紐づけるキーとなる[レコードNo]列を選択し、[行No:0]と[行No:1]のクエリを結合します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-015.png)
あとは展開して表示したい列の項目を選択すれば完了です。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-016.png)
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-04-26-power-query-good-tool-goodbye-macro-017.png)
今回はPower Queryで1レコード複数行、複数列のExcel表をリスト形式に変換する方法を紹介させていただきました。汚れたExcelデータのクレンジングは面倒臭いなぁ…と感じる作業だからこそ、短時間で終わらせるスキルがあるとめっちゃ楽です。なんだかんだ日本企業ではExcelが重宝されているので、Power Queryのデータ加工機能は必ず役立ちます。