コンテンツにスキップ

FILTERXML

種類: MS Excel 互換関数 · ネイティブ導入: Excel 2013

指定した XPath を使って XML からデータを返します。

構文

=FILTERXML(xml, xpath)

引数

引数 必須 説明
xml 必須 XML テキスト
xpath 必須 XPath クエリ

戻り値

XPath に一致するノードが 1 個の場合はそのテキストをスカラーで、複数の場合は N×1 の縦方向テキスト配列をスピルで返します。XML/XPath が空の場合や XML の解析・XPath の処理に失敗した場合は #VALUE!、一致するノードがない場合は #N/A を返します。

数式 結果 説明
=FILTERXML("<r><a>1</a><a>2</a></r>","//a") {"1";"2"} すべての a ノードのテキスト
=FILTERXML(WEBSERVICE("https://example.com/rss.xml"),"//item/title") 外部の XML により異なります

解説

  • MSXML6 で解析し、関数自体はネットワークにアクセスしません — リモートの XML は WEBSERVICE と組み合わせます。
  • 結果はノードのテキストで、常にテキスト形式で返されます。
  • COM を使用するため、マルチスレッド再計算からは除外されます(スレッドセーフではありません)。
  • xml·xpathに配列を指定すると、その配列と同じ形状の配列を返し、各要素は要素ごとの結果の最初の値になります(ネイティブと同じ降格リフティング)。
  • 対応: Excel 2010+。ネイティブ関数がない旧バージョンでは FILTERXML の名前のまま(ドロップイン)、ネイティブ関数がある新しい Excel では EG.FILTERXML として登録されます。