Spreadsheet guide

Excel currency converter: every method, ranked

Excel has four realistic ways to convert currency. Three are native, one is external. Here's when to use each — with formulas, refresh behavior, and the gotchas Microsoft's docs skip.

1. The Stocks data type (Microsoft 365)

Type a currency pair like USD/EUR into a cell, select it, and click Data → Stocks. Excel converts the cell into a linked entity. Add a column with =A1.Price to pull the rate, then multiply your amount column by it. Works only in Microsoft 365 with an internet connection. Updates when the workbook is opened or when you click Refresh All.

2. STOCKHISTORY for point-in-time rates

=STOCKHISTORY("USDEUR", TODAY()) returns today's rate. Pass a fixed date instead ofTODAY() for a historical lookup. The function is slow on large ranges and returns a spilled array — wrap it in INDEX if you only need the price.

3. Power Query + Frankfurter (free ECB rates)

For a workbook that refreshes a full rate table in one click, use Power Query:

  1. Data → Get Data → From Web
  2. URL: https://api.frankfurter.dev/v1/latest?from=EUR&to=USD,GBP,JPY,CHF
  3. Drill into rates, convert to table, load.
  4. Set the query to refresh on open.

Frankfurter publishes the same ECB reference rates the Eurozone uses internally — free, no API key, daily at 16:00 CET. See ECB exchange rates for the cadence.

4. Live web tool (Currency Grid) + paste

When you need many currencies across many rows totaled in one home currency, the spreadsheet plumbing gets heavy. Currency Grid handles that pattern with live ECB rates and lets you copy-paste the resulting table straight back into Excel.

Which one should you use?

MethodRefreshBest for
Stocks data typeManualAd-hoc reports
STOCKHISTORYOn recalcHistorical lookups
Power Query + FrankfurterOn open / scheduleRecurring dashboards
Currency GridDaily, automaticMulti-currency grids with one home-currency total

Frequently asked questions

Is there a formula to convert currency in Excel?
Excel has no single built-in formula like CONVERT_CURRENCY. The closest native options are STOCKHISTORY (Microsoft 365 only, end-of-day rates, slow) and the Data → Stocks data type, which embeds live currency-pair quotes. Neither updates automatically — you must refresh manually.
How do I convert currency in Excel automatically?
Three options: 1) STOCKHISTORY("USDEUR", TODAY()) returns the rate for a given date but doesn't auto-refresh. 2) Power Query pulling from an FX API (ECB, Frankfurter, openexchangerates), scheduled to refresh on open. 3) A live web tool like Currency Grid that pulls daily ECB rates and lets you copy-paste back into Excel.
Can Excel automatically convert currency?
Only inside Microsoft 365 with the Stocks data type or STOCKHISTORY, and only when the workbook is open and refreshed. For headless scheduled refresh you need Power Query plus a Data Model refresh, or an external tool.
How do I convert different currencies to USD in Excel?
Build a small rates table (one row per currency code with its USD rate), then in your data column use =amount / VLOOKUP(currency_code, rates_table, 2, FALSE). Refresh the rates table via Power Query or paste from a live source.
What's the best currency converter for Excel?
For one-off conversions, the Stocks data type. For repeatable workflows, Power Query against a free FX API like Frankfurter (ECB rates). For many currencies across many rows totaled in one home currency, a dedicated tool like Currency Grid is simpler than maintaining the spreadsheet plumbing.

Try the live grid

Currency Grid is a spreadsheet-style multi-currency converter. Type amounts in any currency and see live conversions across rows and columns, totaled in your home currency using daily ECB reference rates.

Open Currency Grid

Related