天気・気象情報を、Excel関数で取得する
クラウドに対応したExcel関数
Excelの関数といえば、数値を計算したり、文字列をこねくり回すイメージが強いと思いますが、最近追加された関数には、クラウドを意識したものが増えています。
今回ご照会するwebservice関数もその1つ。Excel2013の頃から搭載されていたのですが、意味のある挙動をさせるには「相手を選ぶ」ため、認知度もイマイチでした。
webservice関数の使い方
webservice関数とは、その名の通り、webサーバの結果を取得する関数です。
難しい関数と違って、URLを指定するだけというお手軽さなのですが…
何も考えずにgoogleのURLを指定してみると、htmlが表示されます。
"指定したURLにアクセスした結果”を表示する関数なので、当然といえば当然です。
ところが、サーバ側で問い合わせた内容に応じた結果を返せるようにしておけば、「会話」が成り立ちます。
試しに、以下の式をExcel(但しWindows版365)に貼付けてみると、「みずほ銀行」と表示されるはずです。最後の"0001"は銀行コードなので、任意の銀行コードに変更すると、その名称が表示されます。
webservice関数でわかる、過去の天気
以下の例では、日付を指定し、気象情報を取得した結果を並べたものです。
こうして過去の同じ日付を並べてみると、地球が温暖化している・・・かも知れない、といったことが見えてくるかも知れません。
夏休みの日記の宿題を溜め込んだあの時、こんなしくみがあればどんなに便利だったことか…
実際に気象情報を取得してみる
それでは、自分の環境でこれを再現する方法について、解説します。
動作環境の確認
その前に、webservice関数は、Excel2013で実装された後、Excel2019で廃止された・・・というのも妙ですが、以後は365でしか動かなくなりました。
動作にWindowsOSの機能を使うことから、オンライン版やMac版のExcelでは動かない、そうです。
まずは条件の合うバージョンのExcelをお持ちかどうか、ご確認下さい。
事前準備:シートの構成
まずは、こんな感じでシートを用意しておきます。
上のサンプルでは、D12とE12が可変要素(パラメータ)を入れるセルです。
webservice関数を設定するのは14行目です。
続いて、例として、E14の式です。
先の可変要素のセルを反映させてあります(色が対応しています)。
上の式の最後に”&2”とあるのは、2番目の「最高気温」を取得するためのもので、最低気温の場合は”&3”になります(他も同様)。
式のサンプルを文字化しておくので、よかったらコピペして使って下さい。
地区だけ変えてみると、同じ日にここまで気温が異なるか、ということがわかります。時系列で並べてみると、地球温暖化の真偽が見えてくる・・・かもしれません。
ちなみに、地区はこの3ヶ所(札幌、東京、那覇)のみ、東京以外は2024年のみです。
応用例(動画)
実際に可変要素を別セルに分離した状態で動かすと、こんな使い方ができます。
https://castanet.one/images/demo.mp4
https://castanet.one/images/demo_cal.mp4
留意事項
接続先(指定したURL)により、パラメータ設定は異なります。
今回接続したURLでは、ここの流儀でパラメータを設定することで、他の情報(銀行・支店コード ⇔ 名称 / 食品コード → 栄養素等)が取得できます。
それから、この関数はOSを通して処理をするためか処理速度が遅く、打てば響く、とは行きません。たまに#valueになってしまいますが、しばらくすると表示が戻ってきます。それでも戻らない場合は、F2を押すと直ります。
今回はwebservice関数でこんなことができる、という紹介がてら、気象情報の取得について取り上げてみました。
この記事が気に入ったらサポートをしてみませんか?