
FILTERXML関数は、エクセルで外部のXMLデータを活用する際に非常に強力な関数である。ニュースや天気予報など、実在するRSSフィードを利用することで、動的な情報を簡単に取り込むことができる。
目次
エクセルで外部データを取り込んで可視化・分析したいと考えたときに便利なのが「FILTERXML関数」である。特に、XML形式で提供されているWebデータから必要な情報を抽出する用途において、その威力を発揮する。
本記事では、初心者にもわかりやすいようにFILTERXML関数の基礎から実践的な活用例までを解説する。
そもそもXMLとは?
FILTERXML関数の活用には、XMLの基本的な理解が不可欠だ。ここではXMLとは何か、どのように使われているのかを簡単に説明する。
■XMLは「情報を整理するルール」
XML(eXtensible Markup Language)とは、データを階層的に整理して記述するための言語である。タグと呼ばれる記号で囲むことで、データの意味や構造を明確に表すことができる。
例:
<city>
<name>東京</name>
<weather>晴れ</weather>
</city>
このように、<name> や <weather> といったタグで情報を区別できる仕組みになっている。
■WebサービスでもXMLが使われている
ニュース、天気、商品情報など、多くのWebサービスがXML形式で情報提供している。これらはRSSやAPIの形式で公開されており、エクセルで直接読み込むことが可能である。
FILTERXML関数とは?
FILTERXML関数は、XML形式のデータから特定の要素を抽出するためのエクセル関数である。XPathと呼ばれる記法を使って、目的のデータを柔軟に取り出せるのが特徴だ。
■FILTERXML関数の基本概要
FILTERXML関数は次の構文で利用する。
=FILTERXML(xml, xpath)
xml:XML形式の文字列
xpath:抽出したい要素を指定するXPath式
XMLを使って抽出表示させる手順
XMLを使ってデータを抽出する手順を、簡単なサンプルを使って解説しよう。
■手順1:XML文字列をセルに入力

任意のセル(例:A1)に、下記のXMLデータを「文字列」として貼り付ける。改行できないため、1行にして貼り付ける必要がある。
<people><person><name>佐藤</name></person><person><name>鈴木</name></person><person><name>田中</name></person></people>
■手順2:FILTERXML関数で名前を抽出

セルB1に以下の式を入力する。
=FILTERXML(A1, “//name”)
これは、A1セルから<name>タグで囲ったデータを抽出するという関数式になっている。
■手順3:表示結果

B列(FILTERXMLの結果)
佐藤
鈴木
田中
WebサービスのRSSから抽出する手順
NHKが提供するRSSフィードを使って、WebサービスからFILTERXML関数でデータを抽出する具体的な方法を紹介しよう。
■対象URL

https://www3.nhk.or.jp/rss/news/cat0.xml
このURLは最新ニュース一覧をXML形式で提供している。
■エクセルでの関数例
1.A1セルに以下を入力
=WEBSERVICE(“https://www3.nhk.or.jp/rss/news/cat0.xml”)

2.B1セルに以下を入力
=FILTERXML(A1, “//item/title”)

3.最新ニュースのタイトル一覧がエクセル上に表示される
