Excel

【Excel】FILTERXML関数の使い方|XMLやHTMLから特定のデータを抽出する強力関数を解説

ExcelでWebから取得したXMLやHTMLのデータをセル単位で抽出したい場合、非常に便利なのがFILTERXML関数です。

この記事では、FILTERXML関数の構文や使い方を基礎から説明し、WEBSERVICE関数との連携や実務での応用方法まで、わかりやすく紹介します。


1. FILTERXML関数とは?

FILTERXML関数は、XML形式の文字列データから、指定した要素や属性の値を抽出する関数です。
XPath(XMLパス言語)というルールを使って、欲しい要素をピンポイントで取り出すことができます。

✅ XMLデータの中から「価格」「商品名」「日付」など、必要な情報だけを抽出可能。


2. 基本構文と使い方

=FILTERXML(XML文字列, XPath式)
引数 内容
XML文字列 XML形式のデータ(文字列)
XPath式 取得したいノードを指定するパス式

■ 例:シンプルなXMLから要素を取り出す

A1セルのXMLデータ:

<商品>
<名前>りんご</名前>
<価格>120</価格>
</商品>

関数例:

=FILTERXML(A1, "//名前") → 結果:りんご
=FILTERXML(A1, "//価格") → 結果:120

3. 実用例:複数ノードの取得

XMLデータ(セルA1に格納):

<在庫>
<商品><名前>りんご</名前><価格>100</価格></商品>
<商品><名前>バナナ</名前><価格>80</価格></商品>
<商品><名前>みかん</名前><価格>90</価格></商品>
</在庫>

関数例(A列に名前、B列に価格):

=FILTERXML(A1, "//商品/名前") → りんご / バナナ / みかん
=FILTERXML(A1, "//商品/価格") → 100 / 80 / 90

→ スピル機能により縦に展開(※Excel 365以降)


4. HTMLやRSSフィードから情報を取得する応用例

FILTERXML関数は、HTMLやRSSなど、XMLに準拠した形式であれば抽出可能です。

■ RSSフィードから記事タイトルを取得(例:NHK)

=FILTERXML(WEBSERVICE("https://www3.nhk.or.jp/rss/news/cat0.xml"), "//item/title")

→ 最新ニュースのタイトル一覧を取得できます。


5. WEBSERVICE関数との連携

FILTERXML関数単体では使えません。
XMLを生成する関数や外部APIと組み合わせることで最大限の効果を発揮します。

■ 組み合わせ例:

=FILTERXML(WEBSERVICE("https://example.com/data.xml"), "//価格")

→ 指定の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データ取り込みツールに変身します!