# GOOGLEFINANCEで為替レートが取得できない？ 対処法を総まとめ

> 通貨ペアで#N/A、古いままに見えるレート、エラーになる過去の日付 – ドキュメントで確認できるGOOGLEFINANCEの失敗パターンをすべて取り上げ、原因と本当に効く対処法を解説します。

- Source: https://www.8apps.co/ja/blog/googlefinance-exchange-rate-not-working
- Markdown: https://www.8apps.co/ja/blog/googlefinance-exchange-rate-not-working.md
- Published: 2026-10-21
- Author: 8appsチーム
- Language: ja

---
## まず、正しく動くはずの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の為替データは実際どこから来ているのか](/ja/blog/where-google-currency-data-comes-from)では、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 スプレッドシートで過去の為替レートを取得する](/ja/blog/historical-exchange-rates-google-sheets)では、特定日のレートを取得する流れを最初から最後まで解説しています。

## 「EURでは動くのに、この通貨では動かない」

すべての通貨ペアに毎日のデータがあるわけではありません。Google自身のヘルプフォーラムやIssue Trackerには、特定の通貨 – 2025年に報告されたのはBRLとILSです – について、Google Finance側にデータがなかったために何週間も `#N/A` を返し続けたというスレッドがあり、週末の日付で一部の通貨のデータが欠けているというGoogle スプレッドシートユーザーの報告もあります。数式の中でできる対処はなく、確認できるステータスページもありません。以前は動いていたペアが*「シンボル ... のクエリからデータが返されませんでした」*と表示するなら、データが欠けているのはあなたのシートではなく上流です。`IFERROR(..., "no data")` のようなラッパーを使えば、その間もシートの残りは計算を続けられます。

## 「スクリプトから触るとエラーになる」

これはバグではなく壁であり、Googleもそう明記しています。*「過去データは、Sheets API や Apps Script でダウンロードしたりアクセスしたりすることはできません。これを試みると、スプレッドシートの該当するセルに、値の代わりに #N/A エラーが表示されます。」* 数式の中でできる対処はありません – 自動化されたパイプラインには、代わりに本物のレート提供元が必要です。[数式で十分なのはどんなときか](/ja/blog/googlefinance-vs-currency-addon)で代替手段をまとめています。

## 「いつ更新されるの？」

GoogleはGOOGLEFINANCEの更新間隔を文書化しておらず、再計算の設定でタイマーに乗せられる関数として挙げているのは `NOW`、`TODAY`、`RAND`、`RANDBETWEEN` だけです。更新頻度を言い切る人がいたら、それは推測です。それを前提に設計しましょう。値は「おおむね最新」として扱い、固定しておきたいものは値として貼り付けてください。

## 文書に数字が1つ必要でここにたどり着いたなら

GOOGLEFINANCEのデバッグの多くは、請求書や見積書、メールに載せる換算後の数字1つのために行われています – その場合、スプレッドシートはそもそも回り道でした。[Currency Converter](/ja/google-workspace/currency-converter)は、Gmail、Google ドキュメント、Google カレンダー、Google スライド、Google スプレッドシートのサイドバーで、180以上の通貨を最新レートで換算できます。サイドバーでの換算は無制限・無料で、登録も不要です。必要なのが過去の特定日のレートなら、それはGoogle スプレッドシート用の関数で提供しており、Premiumプランに含まれます。

## 出典

- [GOOGLEFINANCE – ドキュメント エディタ ヘルプ](https://support.google.com/docs/answer/3093281) – 2026-09-16に確認
- [Google Issue Tracker 357214897 – Currency exchange using google finance does not work](https://issuetracker.google.com/issues/357214897)、およびBRL（2025年1月）とILS（2025年10月）でデータが返されなかった件に関するGoogle ドキュメント エディタ コミュニティのスレッド – 2026-09-16に確認
- [Google Finance 免責事項](https://www.google.com/googlefinance/disclaimer/) – 2026-09-16に確認（通貨の遅延の表、為替レートの正確性に関する注意書き）
- [Currency Converter by 8apps](/ja/google-workspace/currency-converter) – 製品に関する記載、2026-09-16に確認
