まず、正しく動くはずの2つの数式から
=GOOGLEFINANCE("CURRENCY:USDEUR")
=INDEX(GOOGLEFINANCE("CURRENCY:USDEUR","price",DATE(2026,8,1)),2,2)
1つ目が最新レート、2つ目が過去レートです。お手元の数式が違って見えるなら、まずこの2つと見比べてください – 不具合の大半は構文の問題です。ここからは、多くの人がつまずく順に失敗パターンを見ていきます。
「#N/A」や「無効なシンボル」と表示される
- 通貨ペアはスラッシュもスペースも入れず、1つの文字列で指定します:
CURRENCY:USDEURが正解で、CURRENCY:USD/EURやCURRENCY:USD EURではありません。 - どちらのコードもISO 4217に沿っている必要があります – 3文字で、実在する通貨のもの。コードを打ち間違えると、不明なシンボルとしてエラーになります。
- デバッグ中に知っておきたいこと:
CURRENCY:という接頭辞は、GoogleのGOOGLEFINANCEヘルプページのどこにも出てきません(2026年9月16日に再確認)。Google スプレッドシートで最もよく使われている通貨機能は、ドキュメントに載っていないのです – 動きはしますが、エラーになったときに照らし合わせる公式リファレンスは存在しません。それはあなたのミスではなく、そもそもそういう前提の機能なのです。Googleの為替データは実際どこから来ているのかでは、Googleが何を明言し、何を明言していないかを整理しています。
「レートが間違っている」(たいていは古いだけ)
Googleは遅延について2か所で記載しており、その2つの数字は食い違っています。GOOGLEFINANCEのヘルプページは price 属性を*「リアルタイムの価格。最大20分遅延」と説明しています。一方、Google Financeの免責事項ページは通貨データを別枠で扱い、遅延を3分としたうえで、こう付け加えています。「Googleは、表示される為替レートの正確性を保証できません。為替レートの変動の影響を受ける可能性のある取引を行う前に、最新のレートをご確認ください。」* リアルタイムの取引画面と比べているなら、この時間幅の中でずれが出るのは想定どおりの挙動であって、エラーではありません。もう1つ、バグと誤解されがちな文書化された制約があります。GOOGLEFINANCEは*「英語でのみ利用でき、ほとんどの海外の取引所には対応していません」*。
過去レートの取得がエラーになる、または表が返ってくる
過去レートの形式が返すのは、1つの値ではなく小さな表(見出し行と日付の行)です – そのため、過去レートの呼び出しをそのまま別の数式に入れると壊れるのです。INDEX(..., 2, 2) で包めば数値だけを取り出せます。Googleが挙げている過去データの属性は close です。日付付きの price はほとんどの例で使われている形式で、どちらも同じ日付と終値の表を返します。
ほかにも文書化された落とし穴が2つあります。Googleは*「GOOGLEFINANCEに渡された日付をUTCの正午として扱う」ため、結果が現地市場の終値から想定される日と1日ずれることがあります。また、通貨ペアでは「通貨には取引時間帯がないため、open、low、high、volumeは返されません」* – 存在するのは終値だけです。Google スプレッドシートで過去の為替レートを取得するでは、特定日のレートを取得する流れを最初から最後まで解説しています。
「EURでは動くのに、この通貨では動かない」
すべての通貨ペアに毎日のデータがあるわけではありません。Google自身のヘルプフォーラムやIssue Trackerには、特定の通貨 – 2025年に報告されたのはBRLとILSです – について、Google Finance側にデータがなかったために何週間も #N/A を返し続けたというスレッドがあり、週末の日付で一部の通貨のデータが欠けているというGoogle スプレッドシートユーザーの報告もあります。数式の中でできる対処はなく、確認できるステータスページもありません。以前は動いていたペアが*「シンボル ... のクエリからデータが返されませんでした」*と表示するなら、データが欠けているのはあなたのシートではなく上流です。IFERROR(..., "no data") のようなラッパーを使えば、その間もシートの残りは計算を続けられます。
「スクリプトから触るとエラーになる」
これはバグではなく壁であり、Googleもそう明記しています。「過去データは、Sheets API や Apps Script でダウンロードしたりアクセスしたりすることはできません。これを試みると、スプレッドシートの該当するセルに、値の代わりに #N/A エラーが表示されます。」 数式の中でできる対処はありません – 自動化されたパイプラインには、代わりに本物のレート提供元が必要です。数式で十分なのはどんなときかで代替手段をまとめています。
「いつ更新されるの?」
GoogleはGOOGLEFINANCEの更新間隔を文書化しておらず、再計算の設定でタイマーに乗せられる関数として挙げているのは NOW、TODAY、RAND、RANDBETWEEN だけです。更新頻度を言い切る人がいたら、それは推測です。それを前提に設計しましょう。値は「おおむね最新」として扱い、固定しておきたいものは値として貼り付けてください。
文書に数字が1つ必要でここにたどり着いたなら
GOOGLEFINANCEのデバッグの多くは、請求書や見積書、メールに載せる換算後の数字1つのために行われています – その場合、スプレッドシートはそもそも回り道でした。Currency Converterは、Gmail、Google ドキュメント、Google カレンダー、Google スライド、Google スプレッドシートのサイドバーで、180以上の通貨を最新レートで換算できます。サイドバーでの換算は無制限・無料で、登録も不要です。必要なのが過去の特定日のレートなら、それはGoogle スプレッドシート用の関数で提供しており、Premiumプランに含まれます。
出典
- GOOGLEFINANCE – ドキュメント エディタ ヘルプ – 2026-09-16に確認
- Google Issue Tracker 357214897 – Currency exchange using google finance does not work、およびBRL(2025年1月)とILS(2025年10月)でデータが返されなかった件に関するGoogle ドキュメント エディタ コミュニティのスレッド – 2026-09-16に確認
- Google Finance 免責事項 – 2026-09-16に確認(通貨の遅延の表、為替レートの正確性に関する注意書き)
- Currency Converter by 8apps – 製品に関する記載、2026-09-16に確認