FILTERXML関数でよくあるエラー
FILTERXML関数は柔軟な反面、構文やデータの不備があるとエラーになりやすい。ここでは代表的なエラーを紹介する。
■#VALUE!エラーが出る原因
#VALUE!エラーが出る主な原因としては、下記のような可能性がある。
- XMLの形式が壊れている(タグの閉じ忘れなど)
- XPathが正しく指定されていない
- 空のセルを参照している
■#NAME?エラーが出る原因
#NAME?エラーでは、関数名のスペルミスが原因となっていることが多い。また、エクセルのバージョンが古い可能性も考えられる。Excel2013以降にアップデートが必要だ。
■#N/Aエラーが出る原因
エクセルの#N/Aエラーは「値が存在しない/見つからない」ことを意味する。FILTERXML関数でこのエラーが出るときは、指定されたXPathに一致する要素が見つからない場合が多い。
使用可能なエクセルのバージョン
FILTERXML関数は、Excel 2013以降で利用可能だ。また、Microsoft 365では最新の動的配列に対応する。ただし、Mac版はサポートしていないので注意が必要だ。
まとめ
FILTERXML関数は、エクセルで外部のXMLデータを活用する際に非常に強力な関数である。ニュースや天気予報など、実在するRSSフィードを利用することで、動的な情報を簡単に取り込むことができる。
エクセルを情報収集やレポート作成のハブとして活用したい方にとって、FILTERXML関数は欠かせない存在になるだろう。
本記事の内容を以下で簡単におさらいしておこう。
- FILTERXML関数の概要
- XML形式データから特定要素を抽出する関数
- 構文:=FILTERXML(xml, xpath)
- xml:XML形式の文字列
- xpath:抽出したい要素を指定(XPath式)
- サンプルXMLでの抽出手順
- セルA1にXML文字列を1行で入力
- <people><person><name>佐藤</name></person><person><name>鈴木</name></person><person><name>田中</name></person></people>
- セルB1に =FILTERXML(A1, “//name”) を入力
- B列に「佐藤/鈴木/田中」が表示
- Webサービス(NHKニュースRSS)での抽出手順
- セルA1に =WEBSERVICE(“https://www3.nhk.or.jp/rss/news/cat0.xml”)
- セルB1に =FILTERXML(A1, “//item/title”)
- 最新ニュースのタイトル一覧が表示される
- 主なエラー原因
- #VALUE!:XML形式の不備、XPath誤り、空セル参照
- #NAME?:関数名のスペルミス、Excelバージョンが古い(2013以降が必要)
- #N/A:XPathに一致する要素が存在しない
- 対応バージョン
- Windows版Excel 2013以降で利用可、Microsoft 365は動的配列対応
- Mac版Excelは非対応
関連記事:「「xmlファイル」とは何か?覚えておきたいExcelでファイルを開く方法」
構成/編集部