ExcelでWebから取得したXMLやHTMLのデータをセル単位で抽出したい場合、非常に便利なのがFILTERXML関数です。
この記事では、FILTERXML関数の構文や使い方を基礎から説明し、WEBSERVICE関数との連携や実務での応用方法まで、わかりやすく紹介します。
1. FILTERXML関数とは?
FILTERXML関数は、XML形式の文字列データから、指定した要素や属性の値を抽出する関数です。
XPath(XMLパス言語)というルールを使って、欲しい要素をピンポイントで取り出すことができます。
✅ XMLデータの中から「価格」「商品名」「日付」など、必要な情報だけを抽出可能。
2. 基本構文と使い方
引数 | 内容 |
---|---|
XML文字列 | XML形式のデータ(文字列) |
XPath式 | 取得したいノードを指定するパス式 |
■ 例:シンプルなXMLから要素を取り出す
A1セルのXMLデータ:
関数例:
3. 実用例:複数ノードの取得
XMLデータ(セルA1に格納):
関数例(A列に名前、B列に価格):
→ スピル機能により縦に展開(※Excel 365以降)
4. HTMLやRSSフィードから情報を取得する応用例
FILTERXML関数は、HTMLやRSSなど、XMLに準拠した形式であれば抽出可能です。
■ RSSフィードから記事タイトルを取得(例:NHK)
→ 最新ニュースのタイトル一覧を取得できます。
5. WEBSERVICE関数との連携
FILTERXML関数単体では使えません。
XMLを生成する関数や外部APIと組み合わせることで最大限の効果を発揮します。
■ 組み合わせ例:
→ 指定のWeb APIやRSSの「価格」要素を抽出
6. よくあるエラーと対処法
エラー | 原因 | 対処法 |
---|---|---|
#VALUE! |
XML形式に誤りがある、またはXPathの書き方が不正 | XMLの構文とXPath式を再確認 |
結果が出ない | 要素が存在しない・スペルミス・名前空間の影響など | XML構造を正確に解析し、パスを修正 |
#NUM! |
複数ノード取得時にスピル先が塞がっている | スピル先を空ける |
日本語が文字化け | 取得元の文字コードがUTF-8以外の場合に発生 | Power Queryを使って文字コード処理する |
7. まとめ
項目 | 内容 |
---|---|
主な用途 | XMLやRSSから必要なデータを抽出 |
メリット | プログラムなしでWebデータやAPIレスポンスを活用可能 |
対応形式 | XML・HTML(構造化されている必要あり) |
組み合わせ | WEBSERVICE関数やENCODEURL関数、Power Queryと併用で強力に |
注意点 | XPathの正確な記述が必要、文字コード・スピル対応に注意 |
✔ 実務での活用シーン
-
ニュースや天気情報の自動取得と一覧化
-
商品データ(価格・在庫)のAPI連携レポート作成
-
不動産情報サイトのXMLから物件情報を抽出
-
RSSリーダーとしてExcelを活用
FILTERXML関数は、Webからデータを引き出す“情報抽出のプロ”です。
WEBSERVICE関数やPower Queryと組み合わせることで、Excelのデータ収集力が一気に広がります。
「HTMLやXMLの構造に沿って情報を取り出す」ことを覚えれば、
Excelがあなた専用のWebデータ取り込みツールに変身します!