はじめに
データをXML形式に変換する必要があるとき、Excelだけで完結できたら便利だと思いませんか?
この記事では、Excelに内蔵されているPower Queryを使って、簡単なデータをXMLに変換する方法を解説します。特別なツールやプログラミング知識は不要です!
この記事の対象
- 対象読者: エンジニアや非エンジニア問わず、Excelでデータを管理している方。
-
この記事を読むと分かること:
- Power QueryでシンプルなXMLを生成する方法。
- 再利用可能なワークフローの構築方法。
データ例
今回は以下のようなシンプルなデータを例にします:
ID | 名前 | 年齢 |
---|---|---|
1 | 山田太郎 | 30 |
2 | 鈴木花子 | 25 |
3 | 佐藤健 | 40 |
目標のXML
このデータを以下のようなXML形式に変換します:
<Rows>
<Row>
<ID>1</ID>
<名前>山田太郎</名前>
<年齢>30</年齢>
</Row>
<Row>
<ID>2</ID>
<名前>鈴木花子</名前>
<年齢>25</年齢>
</Row>
<Row>
<ID>3</ID>
<名前>佐藤健</名前>
<年齢>40</年齢>
</Row>
</Rows>
手順
1. データをPower Queryに取り込む
-
Excelにデータを入力する
- 上記の表をExcelシートに入力します。
-
Power Queryを開く
- Excelの「データ」タブ → 「テーブルまたは範囲から取得」をクリック。
- Power Queryエディターが開きます。
2. データ型を確認
Power Queryで、各列のデータ型を以下のように設定します:
-
ID → 数値型 (
Number
) -
名前 → テキスト型 (
Text
) -
年齢 → 数値型 (
Number
)
※ データ型を変更するには、列の上部をクリックし、「データ型」を選択します。
3. カスタム列を追加してXML構造を作成
- 「列の追加」タブをクリック → 「カスタム列」を選択。
- 新しい列名を「RowXML」とし、以下の式を入力します:
"<Row>" &
"<ID>" & Text.From([ID]) & "</ID>" &
"<名前>" & [名前] & "</名前>" &
"<年齢>" & Text.From([年齢]) & "</年齢>" &
"</Row>"
結果例(RowXML列の内容):
-
1行目の出力:
4. 全行を結合してXML全体を作成
- 「ホーム」タブ → 「詳細エディター」をクリック。
- 以下のコードを追加して全体のXMLを生成します:
let
ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
変更された型 = Table.TransformColumnTypes(ソース, {{"ID", type number}, {"名前", type text}, {"年齢", type number}}),
追加されたカスタム = Table.AddColumn(変更された型, "RowXML", each
"<Row>" &
"<ID>" & Text.From([ID]) & "</ID>" &
"<名前>" & [名前] & "</名前>" &
"<年齢>" & Text.From([年齢]) & "</年齢>" &
"</Row>"
),
結合されたXML = Text.Combine(追加されたカスタム[RowXML], ""),
最終XML = "<Rows>" & 結合されたXML & "</Rows>"
in
最終XML
5. 結果をExcelに戻す
- 「ホーム」タブ → 「閉じて読み込む」をクリック。
- 作成されたXMLをExcelシートにロードします。生成されたXMLが1つのセルに出力されます。
まとめ
- ExcelだけでXMLを生成するには、Power Queryが非常に便利。
- 特別なツールやスクリプトが不要で、簡単に再利用可能なワークフローを構築できます。
- この方法を使えば、あらゆるデータ形式をXMLに変換し、クラウドやシステム連携で活用できます。
応用例
- 大規模データの処理: データが増えてもPower Queryが自動的に処理。
- 異なる形式への変換: Power Queryを使えば、JSONやCSV形式への変換も可能。