shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Query】エクセルで複数のXML形式のデータをインポートして整理

Excelで、複数のXML形式のデータをインポート(読み込み)して一つにまとめる方法です。セル内にあるXMLの場合、【Excel】FILTERXML関数でXPathを指定してXMLからデータ抽出の方法があります。

今回は、XML形式のファイルが複数ある場合に、最近のExcelに標準で含まれているPower Queryを使用し、Excelで一括してデータ抽出する方法です。

使用のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2311)です。

内容:

事前の前提

次のように、一つのフォルダに「複数のXML形式のファイル」が保存されている。

事例のデータは、基本3情報ダウンロード|国税庁法人番号公表サイトで公開されているデータです(ダウンロードファイル内にある「05_Web-API機能(Ver.4.0)\03_取得期間指定」)。

一つのフォルダに複数のXML形式のファイルが保存されている

一つのフォルダに、複数のXML形式のファイル

手順

「フォルダーから」をクリック

「データ」タブで、「データの取得」-「ファイルから」-「フォルダーから」の順にクリックする。

なお、複数のファイルではなく、一つのXMLファイルの場合は「XMLから」をクリックする。
以降、「フォルダーから」をクリックし、複数ファイルのインポートの手順です

「データの取得」-「ファイルから」-「フォルダーから」の順にクリック

「フォルダーから」をクリック

複数のXMLファイルが保存されているフォルダを選択

フォルダの選択画面で、対象のフォルダを指定する。

フォルダを選択し、「開く」をクリック

フォルダの選択画面

「データの結合と変換」をクリック

フォルダ内の一覧が表示されている。「結合」-「データの結合と変換」の順でクリックする。

「結合」-「データの結合と変換」の順でクリック

「データの結合と変換」をクリック

データ状況に応じて「読み込み」か「データの変換」をクリック

読み込まれたXMLが表示される。

今回の事例では、「corporation」列のTable内に抽出したいデータがあるので「データの変換」をクリックし、以降の手順でデータ抽出する。

事例では「corporation」列にTableがある

読み込まれたXML

必要なデータを抽出する

事例では、「corporation」列のTable内に抽出したいデータがあるため、「corporation」列で展開をクリックする。

「corporation」列で展開をクリック

「corporation」列のTableを展開

必要なデータを選択する。

一覧から必要な列名を選択する

必要なデータを選択

以上で、次のようにデータ抽出ができる。

必要なデータを一覧抽出できている

抽出の結果

参考

上記で、XMLをテーブルに変換時は以下の関数が使用されています。

learn.microsoft.com

 

PowerQueryに慣れるための最初のポイントについては、以下に記載しました。

shikumika.org

 

以上、Power Queryを使用し、Excelで複数のXML形式のデータをインポート(読み込み)して一つにまとめる方法でした。