「Excel 2013で追加された「WEBSERVICE」関数を使って、マクロを使わずWeb APIを利用する。」や「[Excel 2013]Web関数を使ってマッシュアップ」でも紹介している、Excel 2013で追加されたWeb関数を使うとWeb上のデータを簡単に活用できるのでとても便利です。
今回はこのWeb関数を使って、XMLデータから複数のレコードをまとめて抽出する方法を紹介します。
- セルB2に次の数式を入力します。
- セルB3からセルB7までを選択します。
- 数式バーに次の数式を入力し、[Ctrl] キーと [Shift] キーを押しながら [Enter] キーを押します。
- セルB3からセルB7にデータが入力されます。
Image may be NSFW.
Clik here to view.

Image may be NSFW.
Clik here to view.

Image may be NSFW.
Clik here to view.

Image may be NSFW.
Clik here to view.

上記では、WEBSERVICE関数を使って「Yahoo!天気・災害 – 東京都の天気」から取得したXML(RSS)をセルB2に格納し、FILTERXML関数を配列数式で使うことによって、セルB2のXMLからtitle要素の値をまとめて取得しています。
この方法は「Automatically plot multiple pieces of online data in your Excel spreadsheet」で紹介されていたもので、私自身これまで“FILTERXML関数を配列数式で使う”という発想が無かったのでとても衝撃的でした。
Web APIの結果(XML)やRSSから、こうも簡単に情報が取得できるのはExcel 2013ならではですね。
やっぱり、とても便利です!
■ 関連Webページ
・Excel 2013で追加された「WEBSERVICE」関数を使って、マクロを使わずWeb APIを利用する。http://www.ka-net.org/blog/?p=1933
・[Excel 2013]Web関数を使ってマッシュアップ
http://www.ka-net.org/blog/?p=2462