FILTERXML関数:XML文書からXPathが示すデータを取得する
FILTERXML 関数は Excel で用意されている関数の一つで、XML文書から引数に指定した XPath が示すデータを取得します。ここでは Excel における FILTERXML 関数の使い方について解説します。
※ Excel の対応バージョン : 365 2021 2019 2016 2013
※ 公式サイトでの解説 : FILTERXML 関数
(2021 年 10 月 25 日公開 / 2021 年 10 月 25 日更新)
FILTERXML関数の使い方
FILTERXML 関数は XML 文書の中から引数に指定した XPath が示すデータを取得します。
FILTERXML(XML,XPath)
1 番目の引数に XML 文書が入力されているセルを指定します。 2 番目の引数にデータを取得する XPath を指定します。
例えば次のような XML 文書がセルに入力されているとします。
<?xml version="1.0" encoding="UTF-8" ?> <foods> <food> <name>バナナ</name> <color>黄色</color> </food> </foods>
これに対して name 要素のデータを取得するには例えば次のように XPath を指定します。
/foods/food/name //name
/foods/food/name の方はルートからの順番にパスを指定したもので、 //name の方は途中のパスを省略したものです。実際にどのようなデータが取得できるのかはこのあとのサンプルをご確認ください。
FILTERXML関数のサンプル
それでは実際に ENCODEURL 関数を使ってみます。 Excel のシートに対象の数値を次のように入力しました。
取得したデータを表示する B4 セルを選択し、次のように入力しました。 1 番目の引数として XML 文書が入力されている B2 セルを指定しています。 2 番目の引数として "//name" を直接入力しました。
=FILTERXML(B2,"//name")
Enter キーを押すと、 B4 セルおよび B5 セルには次のように表示されます。
今回指定した XPath が示すデータは 2 つ見つかったので、結果を配列として取得し表示されました。
関数の挿入を使ってFILTERXML関数を入力する
FILTERXML 関数を入力する場合に関数の挿入を使って行う方法を試してみます。関数を挿入するセルをクリックして選択したあとで、関数の挿入をクリックします。
「関数の挿入」ダイアログが表示されたら関数名のところで「FILTERXML」をクリックしてください。そのあとで「OK」をクリックしてください。
「関数の引数」ダイアログが表示されたら、 1 番目の引数に XML 文書が入力されたセルを指定します。 1 番目の引数を入力するテキストボックスをクリックして選択してから引数に入力するセルを Excel 上でクリックして下さい。
ダイアログの 1 番目の引数のところに先ほど選択したセルが表示されます。
次に 2 番目の引数に XPath が入力されたセルを指定します。 2 番目の引数を入力するテキストボックスをクリックして選択してから今回は直接 "//name" を指定しました。
引数の指定が終わると結果としてセルに表示される値も表示されます。最後に「OK」をクリックしてください。
最初に選択したセルに FILTERXML 関数が入力され、 XML 文書の中から引数に指定した XPath が示すデータを取得した結果がセルに表示されます。
-- --
Excel における FILTERXML 関数の使い方について解説しました。
( Written by Tatsuo Ikura )

著者 / TATSUO IKURA
初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。