Excel XMLにXPathを指定してデータを取得(FILTERXML関数)

  • 2019年7月10日
  • 2021年11月6日
  • Excel Web
  • 68view

FILTERXML関数はXML形式の文字列に対して

XPathを指定して任意のデータを取得する関数です。

HTMLもXMLのルールの中にあるため利用可能です。

多くの場合、FILTERXML関数単独ではなく

WEBSERVICE関数と併用してExcelからマクロなしで

WebAPIにアクセスする用途に使用します。

仕様

=FILTERXML(XML,XPath)
引数省略時の値説明
XML省略不可抽出元となるXML文字列を指定。
Xpath省略不可Xpath構文を指定
引数の詳細

使用例

サンプルのXMLとXPath及びFILTERXML関数の結果です。

XMLかXPathが解析不可能な場合、#VALUE!エラーとなります。

FILTERXML関数の基本的に利用例

Xpathのルールは色々ありますが、以下を押さえれば最低限利用可能でしょう。

  • // で始まり /区切りでタグの階層を指定
  • @でタグの属性を指定

スピルを利用する方法とメリット

Office365やExcel2019以降ではスピルという形式で記述可能です。

これは複数セルに数式をコピーする場合に便利な機能です。

スピルの利用には何れかの引数を複数セルの範囲で指定します。

スピルでFILTERXML関数を記述する例(C6セル)
スピルでFILTERXML関数を記述する例(C6セル)

数式を入力するのは最初の一つのセルですが、

引数で指定した高さ分、数式がセルのコピーなしで自動拡大されます。

C6に指定したFILTERXML関数がC9まで自動拡大
C6に指定したFILTERXML関数がC9まで自動拡大

スピルを利用することで今回の例では、

C6セルに入力するだけでよいため(C7以降にコピーペーストが不要)

以下のメリットがあります。

  • 入力の手間が少ない(数式のセルが多いほど効果が大きい)
  • 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
  • 絶対参照が不要
  • 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。

Excelを効果的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り1,250円またはKindle Unlimited (読み放題) で提供中です。

Word-A4サイズ:1,400ページの情報量で

(実際のページ数はデバイスで変わります)

基本的な使い方、関数の解説(140種類)、

頻出テクニックと実用例(109種類)、

XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

なお購入後に最新版をダウンロードするには

Amazonへの問い合わせが必要です。

関連記事

活用例

週間天気予報を表示する方法

関数の仕様と使い方の記事一覧