Google Sheets Tips

How to convert currency in Google Sheets using GOOGLEFINANCE

GOOGLEFINANCE returns the current exchange rate for any currency pair, and the historical rate for a day or a period. This guide shows the formulas, how to convert a whole column with cell references, what Google says about the delay and limits of the data, and how to fix the usual errors.

Google Sheets TipsVadym Kramarenko7 min read

How to convert currency in Google Sheets using GOOGLEFINANCE

To convert currency in Google Sheets, use =GOOGLEFINANCE(“CURRENCY:USDEUR”). It returns the current exchange rate from US dollars to euros. Multiply it by an amount, =B3*GOOGLEFINANCE("CURRENCY:USDEUR"), and you have the converted value. Swap the two three-letter codes for any other pair.

The same function returns historical rates for a day or a date range. This guide covers both, shows how to convert a whole column with cell references, and lists the limits you should know before a GOOGLEFINANCE rate goes into a report.

Note: Originally published in June 2024. Fully updated in October 2026 with the full syntax, historical date ranges, the documented limits of GOOGLEFINANCE rates and fixes for common errors.

💡 GOOGLEFINANCE also returns stock prices and other market data. See our guide to the GOOGLEFINANCE function for everything beyond currencies.

Article card titled “Unlock Financial Insights with GOOGLEFINANCE in Google Sheets”.

GOOGLEFINANCE currency syntax

GOOGLEFINANCE currency syntax

For a current rate, the function needs one argument:

=GOOGLEFINANCE("CURRENCY:SourceCurrencyTargetCurrency")

  • SourceCurrency: the three-letter code of the currency you convert from.
  • TargetCurrency: the three-letter code of the currency you convert to.

The codes are the standard ISO ones: USD for the US dollar, EUR for the euro, GBP for the pound sterling, JPY for the Japanese yen. They are written together with no space or separator, so dollars to yen is “CURRENCY:USDJPY”. The order matters: “CURRENCY:EURUSD” returns the inverse rate.

For historical rates, the full syntax applies:

=GOOGLEFINANCE(ticker, [attribute], [start_date], [end_date|num_days], [interval])

  • ticker: the currency pair, “CURRENCY:USDEUR”.
  • attribute: “price” for currencies. Google’s documentation notes that open, low, high and volume are not returned for currency pairs.
  • start_date: the first day of the period.
  • end_date|num_days: the last day of the period, or the number of days to return from the start date.
  • interval: “DAILY” or “WEEKLY”.

Convert an amount at the current rate

Convert an amount at the current rate

To convert 100 USD to EUR, with the amount in cell B3, multiply the amount by the rate:

=B3*GOOGLEFINANCE("CURRENCY:USDEUR")

Table in Google Sheets showing real-time currency conversion from USD to EUR using GOOGLEFINANCE.

The result recalculates on its own as the rate changes. To show the rate itself, put the GOOGLEFINANCE part in its own cell and reference that cell in the multiplication. One rate cell is also easier to audit than the same function repeated in two hundred rows.

The Turning Point

OWOX Data Marts

See your first report built in real time. 15 minutes.

  1. Connect your data warehouse
  2. Pick your metrics
  3. Get a live Google Sheets report

In the time it takes to write a ticket. Then imagine never writing that ticket again.

Book a Demo

We'll use your actual use case

Convert a column with cell references

Convert a column with cell references

Typing the codes into the formula does not scale. Keep the source code in one column and the target code in another, and build the ticker from the cells:

=B3*GOOGLEFINANCE("CURRENCY:"&C3&D3)

Table in Google Sheets converting multiple currencies simultaneously with amounts and exchange rates.

Here B3 holds the amount, C3 the source currency and D3 the target currency. Change a code in column D and the row recalculates for the new currency.

To apply the formula to the rows below, select the cell and drag the fill handle (the small square in its bottom right corner) down the column.

Google Sheets demonstrating bulk currency conversion using the fill handle to apply formulas across rows.

Each row now converts its own amount between its own pair of currencies.

Final table in Google Sheets after completing bulk currency conversions with calculated exchange rates.

Get a historical exchange rate

Get a historical exchange rate

The rate on one day

Add the attribute and a date:

=GOOGLEFINANCE("CURRENCY:USDEUR", "price", DATE(2021,12,10))

Google Sheets displaying historical exchange rate for USD to EUR on a specific date using GOOGLEFINANCE.

A historical request returns a small table, not a single number: a header row (Date, Close) and a row with the date and the closing rate. Leave the cells to the right and below empty, or the formula returns #REF!.

To get only the number, for example to multiply it by an amount, wrap the formula in INDEX and take the second row of the second column:

=INDEX(GOOGLEFINANCE("CURRENCY:USDEUR", "price", DATE(2021,12,10)), 2, 2)

The rates over a period

Give a start date and an end date, and an interval:

=GOOGLEFINANCE("CURRENCY:USDEUR", "price", DATE(2026,1,1), DATE(2026,1,31), "DAILY")

The result is one row per day. Use “WEEKLY” for one row per week. For a moving window, build the dates from TODAY: TODAY()-30 as the start date and TODAY() as the end date return the last 30 days and move forward by themselves.

What GOOGLEFINANCE rates are, and are not

What GOOGLEFINANCE rates are, and are not

Google states the limits on its GOOGLEFINANCE help page (checked October 2026):

  • Rates can be delayed. Quotes “may be delayed up to 20 minutes”.
  • They are for information, not for trading. The data is provided “as is” and solely for informational purposes.
  • Historical data stays in the sheet. It cannot be downloaded or accessed through the Sheets API or Apps Script, so a script or an external tool reading the sheet will not get the historical values.

In practice this means GOOGLEFINANCE is right for a budget, a travel plan or a quick estimate. It is the wrong source for invoices, accounting or any report where the finance team already uses an official rate.

Common errors and how to fix them

Common errors and how to fix them

#N/A

⚠️ Error: The formula returns #N/A.

✅ Solution: Check the ticker first: both codes must be valid, written together and in quotes, with “CURRENCY:” in front. If the ticker is built from cells, look for a stray space in the code cells. For a historical request, #N/A can also mean there is no data for that date; ask for a few days around it with num_days instead of a single date.

#REF!

⚠️ Error: A historical formula returns #REF!.

✅ Solution: The result table needs empty cells to the right and below. Clear them, or wrap the formula in INDEX to return a single value.

The codes change when the formula is copied

⚠️ Error: After dragging the formula down, some rows convert the wrong pair.

✅ Solution: If every row uses the same currency code stored in one cell, lock it with an absolute reference such as $D$1. Without the dollar signs, the reference moves down with each row.

The rate looks out of date

⚠️ Error: The rate in the sheet differs from the one you see elsewhere.

✅ Solution: A difference of a few minutes is expected, given the documented delay. Banks and payment providers also add their own margin, so their rate will not match a market rate. If you need the rate of a specific moment to stay fixed, copy the cell and paste it as a value (Edit → Paste special → Values only).

Related Google Sheets functions

Functions that are often used next to GOOGLEFINANCE, each with its own guide:

  • VLOOKUP: Searches for a value in the first column of a range and returns a value from the same row.
  • UNIQUE: Returns the distinct values of a range.
  • QUERY: Filters, sorts and aggregates a range with an SQL-like syntax.
  • MATCH: Returns the relative position of an item in a range.
  • FILTER: Returns the rows of a range that meet your conditions.
  • XLOOKUP: Searches a range for a match and returns the corresponding value from another range.
  • IMPORTXML: Imports data from a web page or an XML feed using an XPath query.
  • QUERY vs VLOOKUP: Compares the two functions and shows when each is the better choice.

One rate in a cell is not a rate the whole company uses

One rate in a cell is not a rate the whole company uses

GOOGLEFINANCE answers “what is the rate right now” for one sheet. Reporting needs something else: the same daily rate applied to every row of ad spend or revenue, in every report, with a record of which rate was used on which day. A formula that recalculates in each copy of the sheet gives every copy a slightly different total.

The OWOX Data Marts extension for Google Sheets covers that half. A data analyst publishes a data mart (a table or an SQL query in your data warehouse) and makes it available for reports. In Sheets you open the extension, pick the data mart, tick the columns you want and run it. The rows land in a tab, ready for your formulas.

Google Sheets with the OWOX Data Marts extension open beside an ad spend table: the Unified Ad Spend data mart, nine of fourteen columns ticked and a Save & Run button – the rows in the sheet come from a governed data mart, not a pasted export

What changes for the person who maintains the sheet:

  • Refresh replaces re-export. Refresh current report in the extension menu re-runs the same pull, and a scheduled refresh keeps the tab current without anyone touching it.
  • The source is written on the sheet. The header cell of an imported tab carries a note with the data mart it came from, the time of the import and a link to the report.
  • No SQL and no warehouse access needed. The analyst decides which data marts and columns are available. You choose from that list.

For currency reporting specifically, the rates can come from a data mart too: OWOX Data Marts loads daily rates from Open Exchange Rates into your warehouse, where the analyst joins them to spend, as described in Open Exchange Rates to Google Sheets. The extension does not write or change the analyst’s SQL, and GOOGLEFINANCE stays the quickest way to check a rate. The extension comes with the OWOX Cloud plans of OWOX Data Marts; spreadsheet reporting describes both ways data reaches a sheet.

Your New Normal

Turn your data into decisions.

Governed data marts give you the clean foundation ML needs to actually work.

  • No AI hallucinations
  • Analyst-governed definitions
  • Every number traces to SQL
Get started free

FAQ

Frequently Asked Questions

How do I troubleshoot common issues with GOOGLEFINANCE?

Check the ticker first: it must be "CURRENCY:" followed by two valid three-letter codes with no space between them, in quotes. For a historical request, leave empty cells for the result table, and if a single date returns #N/A, ask for a range of days around it.

What are the key takeaways and best practices for using GOOGLEFINANCE effectively?

Ensure correct syntax, currency codes, and dates in your formulas. Use functions like QUERY and TODAY for automation, and stay updated with tips and community advice to optimize your currency management.

What practical insights can I gain from using GOOGLEFINANCE?

Analyzing real-time and historical rates helps you spot trends, optimize conversions, and improve financial planning and risk management for investments or business operations.

Can I automate currency updates with GOOGLEFINANCE?

Yes, by using the GOOGLEFINANCE function in your spreadsheet, currency values update automatically whenever the sheet recalculates or refreshes, helping you stay current with exchange rate changes without manual updates.

How do I use the GOOGLEFINANCE function for currency management?

In Google Sheets, use the GOOGLEFINANCE function with "CURRENCY:" followed by currency codes and optional dates to fetch real-time or historical exchange rates. This allows you to manage currency calculations easily within your spreadsheet.

Who wrote this

Vadym Kramarenko

Vadym Kramarenko · Growth Marketing Manager

Vadym Kramarenko is a Growth Marketing Manager at OWOX, where he drives user acquisition and product-led growth strategies. He hosts the OWOX podcast, interviewing analytics professionals about data-driven marketing, attribution, and reporting best practices. Vadym specializes in turning complex analytics concepts into practical, actionable marketing frameworks.