583 文字
3 分

Google SpreadsheetのGOOGLEFINANCE関数で為替レート・株価を取得する方法

やりたいこと#

確定申告や投資記録で「特定の日の為替レート」や「特定の日の株価」をスプレッドシートに記録したいことがある。Google SpreadsheetにはGOOGLEFINANCE関数が用意されていて、外部データソースなしで為替・株価を取得できる。

GOOGLEFINANCE関数の基本#

GOOGLEFINANCE関数の書式は以下の通り。

=GOOGLEFINANCE(銘柄コード, 属性, 開始日, [終了日], [間隔])

為替レートの場合、銘柄コードは "CURRENCY:USDJPY" のように CURRENCY: プレフィックスを付ける。株価の場合はティッカーシンボルをそのまま指定する(例: "AAPL", "ZM")。

為替レートを取得する#

テーブル形式で取得#

日付を指定すると、ヘッダー行を含む2行のテーブルが自動で生成される。

GOOGLEFINANCE関数の結果がテーブルで表示される

=GOOGLEFINANCE("CURRENCY:USDJPY","price","2022/1/1")

この方法だとセルが2行×2列に展開されてしまうため、他のデータと混在するシートでは使いにくい。

1つのセルで値だけ取得#

INDEX関数で2行目2列目を指定すれば、レート値だけを1セルに収められる。

1セルに為替レートが表示される

=INDEX(GOOGLEFINANCE("CURRENCY:USDJPY","price","2022/1/1"),2,2)

INDEX(...,2,2) はGOOGLEFINANCE関数が返すテーブルの2行目(データ行)・2列目(価格列)を取り出している。1行目はヘッダー(“Date”, “Close”)なのでスキップする。

日付をセル参照にする#

日付部分をセル参照にすれば、日付リストから一括で為替レートを取得できる。

=INDEX(GOOGLEFINANCE("CURRENCY:USDJPY","price",A2),2,2)

A2セルに 2022/1/1 のような日付を入れておけば、行をコピーするだけで複数日分のレートが取得できる。

株価を取得する#

為替レートと同じ要領で、ティッカーシンボルを指定すれば株価も取得できる。

株価を1セルで取得

=INDEX(GOOGLEFINANCE("ZM","price","2022/1/1"),2,2)

日本株の場合は "TYO:7203"(トヨタ)のように東証のプレフィックスを付ける。

=INDEX(GOOGLEFINANCE("TYO:7203","price","2022/1/1"),2,2)

注意点#

  • GOOGLEFINANCE関数はリアルタイムではなく、最大20分程度の遅延がある
  • 過去のデータは取得できるが、あまりに古い日付だとデータがない場合がある
  • 土日祝日を指定すると直近の営業日のデータが返される
  • 1スプレッドシートあたりのGOOGLEFINANCE関数の呼び出し回数には上限があるため、大量に使うと#N/Aエラーになることがある
Google SpreadsheetのGOOGLEFINANCE関数で為替レート・株価を取得する方法
https://blog.teraren.com/posts/google-spreadsheet-fx/
作者
Yuki Matsukura
公開日
2022-11-28
ライセンス
CC BY-NC-SA 4.0
この記事が役に立ったら
GitHub Sponsorsで応援できます

コメント