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として登録されます。