Cellwise Start free

Excel guide · 5 min read

How to convert currency in Excel

Quick answerPut the exchange rate in its own cell and divide or multiply by it with an absolute reference: =ROUND(D4/$J$2,2) converts 12,749.99 USD to 9,579.26 GBP when J2 holds 1.331 USD per pound. For several currencies, look the rate up from a table: =ROUND(D2/XLOOKUP(C2,$G$2:$G$7,$H$2:$H$7),2). Changing the currency symbol in the format does not convert anything.

Sample data

Every result on this page was calculated from this sheet by the same spreadsheet engine the Cellwise app uses.

ABCDEFGHIJ
1InvoiceSupplierCurrencyAmountCurrencyPer 1 GBPUSD per 1 GBP
2INV-2207Lindqvist ABSEK48250GBP11.331
3INV-2208Moreau SARLEUR3180.4EUR1.152
4INV-2209Harbor Tools IncUSD12749.99USD1.331
5INV-2210Kowalski sp. z o.o.PLN21600SEK12.64
6INV-2211Bauer GmbHEUR845PLN4.905
7INV-2212Tanaka KKJPY1385000JPY201.35
8INV-2213Moreau SARLeur 1200

Download this sheet as an Excel practice file (.xlsx)

One rate in one cell, locked with $

The sheet is a UK company's supplier invoices in several currencies. Start with the simplest case: converting the USD invoice to pounds with today's rate. Never type the rate into the formula itself. Put it in a cell (J2 here) so you can update it in one place and everyone can see which rate was used. The rates in this example are for illustration; type the rate you actually use.

The dollar signs in $J$2 make it an absolute reference, so the formula still points at J2 when you fill it down the column. Without them, the next row looks at J3, which is empty, and returns #DIV/0!.

=ROUND(D4/$J$2,2)

Result: 9579.26

9,579.26 GBP for the 12,749.99 USD invoice from Harbor Tools.

Multiply or divide? Read the rate's direction

A rate is always "units of one currency per 1 unit of another". The table here says 1.331 USD per 1 GBP. To go from dollars to pounds you divide by it, and to go from pounds to dollars you multiply. If your source quotes the other way round (0.7513 GBP per 1 USD), you multiply to get pounds. Using the wrong one gives an answer that is off by the rate squared, which is easy to miss when the rate is close to 1.

Label the rate cell with both currencies, as in "USD per 1 GBP", and the right operation becomes obvious. To flip a rate, divide 1 by it.

=ROUND(1/J2,4)

Result: 0.7513

0.7513: the same rate expressed as GBP per 1 USD. Keep the full rate in the cell, though: multiplying 12,749.99 by the rounded 0.7513 gives 9,579.07, 19p less than dividing by 1.331.

Many currencies: a rate table with XLOOKUP

When invoices come in different currencies, keep a small rate table (G1:H7) with one row per currency code, all quoted against your home currency. XLOOKUP finds the rate for each row's code and the formula divides by it. Lock the table with $ so it stays put when you fill down. XLOOKUP needs Excel 365 or 2021; in older versions use VLOOKUP(C2,$G$2:$H$7,2,FALSE).

Codes are the weak spot. XLOOKUP ignores upper and lower case, so "eur" matches "EUR", but a trailing space does not match, so INV-2213's "eur " returns #N/A. Use TRIM on the code, and add a fourth argument such as "Rate missing" so a currency you forgot to add is obvious instead of a cryptic error.

=ROUND(D2/XLOOKUP(C2,$G$2:$G$7,$H$2:$H$7),2)

Result: 3817.25

3,817.25 GBP for the 48,250 SEK invoice. For row 8, =ROUND(D8/XLOOKUP(TRIM(C8),$G$2:$G$7,$H$2:$H$7),2) gives 1,041.67.

Round each line to 2 decimals (and watch the total)

Divide 3,180.40 EUR by 1.152 and you get 2760.7638888..., which nobody can pay. ROUND(...,2) gives the cents or pence figure that will appear on the payment. Formatting with 2 decimal places only hides the extra digits; they are still in the value and still affect totals.

Decide once whether the total is the sum of the rounded lines or the rounded sum of the raw conversions, because they can differ by a penny or more. Accounting normally adds the rounded lines, so the total matches the individual payments. This SUMPRODUCT converts and rounds all six invoices at once; SUMIF looks up each rate. If a currency is missing from the table, SUMIF returns 0 and the formula shows #DIV/0!.

=SUMPRODUCT(ROUND(D2:D7/SUMIF(G2:G7,C2:C7,H2:H7),2))

Result: 28173.02

28,173.02 GBP, the sum of the six rounded lines. Rounding only the grand total gives 28,173.01.

Currency formats don't convert

Changing a cell from $ to € or £ with Home > Number Format, or with Format Cells > Currency, only changes the symbol shown. 12,749.99 stays 12,749.99. This is one of the most common currency mistakes in shared workbooks: a column of dollars relabelled as euros looks converted and is not.

Use formats to show which currency a column is in, after you have converted it with a formula. If you need the symbol inside a text label, TEXT does it: =TEXT(ROUND(D3/$H$3,2),"£#,##0.00") gives £2,760.76.

Live rates: the Currencies data type (Microsoft 365)

Microsoft 365 can fetch exchange rates for you. Type a currency pair with ISO codes in a cell, such as USD/GBP, then convert it to a Currencies data type. The cell gets a small icon and you can add fields such as Price (the rate) next to it, or refer to it in a formula with dot notation, like =L2.Price.

The rates update when you refresh, not continuously, and Microsoft supplies them for information, so they can be delayed. For invoices, payroll or anything audited, record the rate you actually used (from your bank or payment provider) in the rate cell, with its date, rather than relying on a value that changes on the next refresh.

  1. Type the pairs you need in a column, for example USD/GBP, EUR/GBP, SEK/GBP.
  2. Select them and click Data > Currencies in the Data Types group.
  3. Click the Insert Data button that appears next to the selection and choose Price.
  4. Point your rate table at those Price cells, and use Data > Refresh All to update them.

Common mistakes

Forgetting the $ in the rate reference

Filled down, D4/J2 becomes D5/J3 and returns #DIV/0!. Use $J$2, or press F4 after clicking the rate cell.

Multiplying when you should divide

Check the rate's label: X per 1 home unit means divide to get home currency. Test one line against a figure you know.

Changing the currency symbol and calling it converted

Formats only change the display. Convert with a formula, then format the result.

Overwriting past rates

When the rate cell changes, every old conversion changes too. Store the rate used on each invoice row, or paste old results as values.

FAQ

How do I convert currency in Excel?

Put the rate in a cell and divide or multiply by it with an absolute reference, like =ROUND(D2/$J$2,2). For several currencies, look up each rate with XLOOKUP from a small rate table.

Does Excel have a currency conversion function?

There is no CONVERT-style function for money; CONVERT handles units like miles and kilograms. In Microsoft 365 the Currencies data type fetches exchange rates, which you then use in an ordinary formula.

How do I get live exchange rates in Excel?

In Microsoft 365, type a pair such as EUR/USD, choose Data > Currencies, and insert the Price field. Refresh with Data > Refresh All. The rates can be delayed, so record the rate you actually paid for accounting.

Why did changing the format to euros not change the number?

Number formats only change how a value looks. Multiply or divide by the exchange rate to convert the amount.

Should I round converted amounts?

Yes, round each line to 2 decimals with ROUND, so the stored value is a real payable amount. Formatting to 2 decimals hides the extra digits but keeps them in totals.

Functions used

Related guides

Updated