GOOGLEFINANCE currency & exchange rates — the right syntax
If you got “the query for the symbol ‘eurusd’ returned no data”, nothing is broken — currency pairs just aren't tickers. They need the CURRENCY: prefix.
Free · no sign-up needed · real-time on every plan.
October 3, 2026 · 5 min read
| A | B | C | D | |
|---|---|---|---|---|
| 1 | SYMBOL | NAME | PRICE | Δ% |
| 2 | Apple Inc. | … | ||
| 3 | Bitcoin | … | ||
| 4 |
Those are real, live prices — no formula, no sign-up. Edit any ticker, or type one in the empty row (stocks or for crypto).
Open the full sheet →The fix, in one line
Put CURRENCY: in front of the pair:
- ❌
=GOOGLEFINANCE("EURUSD")→ returned no data - ✅
=GOOGLEFINANCE("CURRENCY:EURUSD")→ the rate
Without the prefix GOOGLEFINANCE goes looking for a stock called EURUSD, finds nothing, and tells you so. The pair is two 3-letter ISO codes joined with no space or slash: CURRENCY:USDKRW, CURRENCY:GBPJPY, CURRENCY:USDCAD.
Mind the order — it's FROM then TO
CURRENCY:USDEURis “how many euros is one dollar,” and CURRENCY:EURUSDis the opposite. Mixing them up doesn't throw an error — it quietly gives you the inverted rate, which is the kind of mistake that survives all the way into a finished spreadsheet. If a number looks wrong by roughly a factor of one-over, check the order first.
Converting an actual amount
Multiply the amount by the rate:
=A2*GOOGLEFINANCE("CURRENCY:USDEUR")— converts the dollars in A2 into euros.- Better for a big sheet: put the rate in one cell (say
$B$1) and reference it —=A2*$B$1. One call instead of hundreds, which also keeps you clear of the throttling that makes cells sit on “Loading…”.
Historical exchange rates
Add the attribute and a date range, and it spills a dated table:
=GOOGLEFINANCE("CURRENCY:EURUSD","price",DATE(2024,1,1),DATE(2024,12,31))
Because it's an array, leave empty cells below and to the right or you'll get a #REF!spill error. Keep historical pulls on their own tab — they're much heavier than a single rate.
Crypto uses the same prefix (with the same limits)
CURRENCY:BTCUSD and CURRENCY:ETHUSD work the same way — but coverage stops at a handful of major coins. Anything beyond that returns no data no matter how you format it.
The gotchas worth knowing
- They're indicative, delayed rates. Fine for reporting and rough conversion; not what your bank or broker will actually give you, and not for trading decisions.
- Exotic pairs may simply not exist. Major and most minor pairs are covered; thin or pegged currencies can return
#N/A. - It only recalculates while the sheet is open— a closed tab keeps yesterday's rate.
A fair word: for currency alone, this is fine
Worth saying plainly — if all you need is currency conversion in a sheet, CURRENCY:does the job and costs nothing. There's no reason to replace it.
The place GOOGLEFINANCE really struggles is stocks and crypto: prices delayed 15–20 minutes, frozen the moment you close the tab, and #N/A for most coins. If you landed here because those are failing too, Stealth Quotes is a spreadsheet that streams real-time stock and crypto prices into the cells — no formulas, no prefixes, nothing to look up.
Stocks and crypto failing too? Type a ticker and get a real-time price — no prefixes, no formulas, no #N/A. Free, no sign-up.
Try it free →Keep reading
Frequently asked questions
Why does GOOGLEFINANCE say 'the query for the symbol EURUSD returned no data'?
Because EURUSD isn't a ticker. Currency pairs need the CURRENCY: prefix: =GOOGLEFINANCE("CURRENCY:EURUSD"). Without it, GOOGLEFINANCE looks for a stock called EURUSD, finds nothing, and returns no data.
What is the GOOGLEFINANCE formula for exchange rates?
Use =GOOGLEFINANCE("CURRENCY:<FROM><TO>") with two 3-letter ISO codes joined together — for example =GOOGLEFINANCE("CURRENCY:USDEUR") for US dollars to euros, or =GOOGLEFINANCE("CURRENCY:USDKRW") for dollars to Korean won.
How do I convert an amount to another currency in Google Sheets?
Multiply the amount by the rate: =A2*GOOGLEFINANCE("CURRENCY:USDEUR") converts the dollar amount in A2 into euros. Put the rate in its own cell if you want to reuse it, so you only make one call.
Can I get historical exchange rates?
Yes — add the attribute and a date range: =GOOGLEFINANCE("CURRENCY:EURUSD","price",DATE(2024,1,1),DATE(2024,12,31)) returns a dated table of rates. Note it's a spilled array, so give it empty cells to fill.
Are GOOGLEFINANCE exchange rates real-time?
No. They're indicative, delayed rates — fine for reporting and rough conversion, not for trading decisions or for matching what a bank or broker will actually give you. They also only recalculate while the sheet is open.
No prefixes to memorize.
Type a ticker and get a real-time price — stocks and crypto, values in USD, no formulas. Free, no sign-up.