Google Spreadsheet/関数/GOOGLEFINANCE

Google Spreadsheet/関数/GOOGLEFINANCE

該当日付の為替レートを得る

過去分のレートを参考にして何か計算することもあるだろう。そのようなときに該当日付の為替レートが欲しい場合がある。

まず為替レート自体を得るにはこのようにしますこの式を使うと値は複数セルに展開される

=GOOGLEFINANCE("jpyusd","price", DATE(2016,12,23))

このようなヘッダー付きの複数セルとして展開される

Date Close
2016/12/23 23:58:00 0.00975929

なので、INDEX 関数と組み合わせて

=INDEX(GOOGLEFINANCE("jpyusd","price", DATE(2016,12,23)), 2, 2)

とすることで任意の日付の為替レートを取得することができる。

jpyusd の部分は基準となる通貨と変換対象の通貨の順で続けて書けばよい

ここにちょっと注意することがあって、為替レートはどの日付でも取得できるわけでなく、 取得出来ない日も存在する。未来の日付は当然取得できないとして、営業日以外も取得できなかったりする。 例をあげると、2017-09-02 の日付の為替レートは取得できない

となると該当日が取れない日だった場合、それ以前の直近のレートを採用することになる。 2017-09-02 が駄目なので 01 のレートが欲しいということである。

このようなことが起きるのでこのように記述するとよい

=INDEX(SORT(GOOGLEFINANCE("jpyusd","price",A1 - 10, A1 + 1), 1, FALSE), 2, 2)

これは何をやっているかというと、A1 に該当の日付が入っているとするとその10日前からその該当日全部までの範囲指定で為替レートを取ってきている。この範囲指定した場合は日付ズバリ指定と違って挙動が少し変わる。

範囲指定した場合、↑のような値が取れない日付は無視される。つまりデータとしてそもそも出てこない。 ここで10日前指定しているのは10日全部が取れないなんて無いという読みである。別に取れるなら長くても短くてもよい。 通常ヘッダーを含め昇順で取れるので、これを降順でソートしてやると該当のデータが取れるという仕組みになる。

google/gdrive/google_spreadsheet/function/googlefinance.txt · 最終更新: 2018-12-20 16:28 by ore