ExcelReady
CourseMock testsFunction guidesBlog
Start freeStart learning for free
ExcelReady

Be Excel-ready before day one. Hands-on practice in your browser, with instant feedback.

Learn

  • Course
  • Mock tests
  • Function guides
  • Blog

Test prep

  • Excel level test
  • Excel test practice
  • Free screening quiz
  • Certificate

Company

  • About
  • Editorial policy
  • Contact
  • Terms
  • Privacy

© 2026 ExcelReady. All rights reserved.

  1. Blog
  2. Lookups
  3. Currency Conversion in Excel With a Rate Table and XLOOKUP

Currency Conversion in Excel With a Rate Table and XLOOKUP

By ExcelReady Team·Updated November 3, 2026·6 min read

The short answer

For currency conversion in Excel, keep the exchange rates in a small table, then multiply each amount by the rate XLOOKUP finds for its currency: =ROUND(B2*XLOOKUP(C2,$F$2:$F$6,$G$2:$G$6),2). Lock the rate table with $ signs so you can fill the formula down. Check whether each rate means "per unit" or "per dollar" before you multiply.

Key takeaways

  • Keep rates in one table with a clear label, such as "USD per 1 unit", and a date.
  • =B2*XLOOKUP(C2,$F$2:$F$6,$G$2:$G$6) multiplies the amount by the right rate for its currency.
  • If the rate is quoted the other way round (units per dollar), divide instead of multiplying.
  • Wrap the result in ROUND(...,2) so totals add up to the cent.
  • Convert between two non-base currencies by going through the base: amount × from-rate ÷ to-rate.
On this page+
  1. How to set up a rate table
  2. The currency conversion formula with XLOOKUP
  3. Why the $ signs matter
  4. Multiply or divide? Check the rate direction
  5. How to round converted amounts
  6. How to convert between two other currencies
  7. How to use a different rate for each date
  8. Practise it

Currency conversion in Excel comes down to one step: multiply each amount by the right exchange rate. The reliable way is to keep the rates in a small table and let XLOOKUP pick the rate for each row's currency code. This guide is for anyone who handles invoices, expenses or sales in more than one currency, and it builds the whole setup on one small example.

How to set up a rate table#

Put every rate in one place, with a label that says which way the rate goes. Below, invoices are in A1:D6 and the rate table is in F1:G6. Every rate is written as US dollars per 1 unit of the other currency.

ABCD
1InvoiceAmountCurrencyAmount (USD)
210011,200EUR
31002950GBP
41003180,000JPY
510042,400CAD
61005500USD
FG
1CurrencyUSD per 1 unit
2USD1
3EUR1.08
4GBP1.27
5JPY0.0067
6CAD0.73

These rates are example values for practice, not real current rates. Exchange rates change all the time. In a real file, copy rates from the source your company uses, such as your bank or finance team, and write the date next to the table.

Use the three-letter ISO codes (USD, EUR, GBP) rather than names or symbols. Codes are short, unique and easy to match.

The currency conversion formula with XLOOKUP#

XLOOKUP finds the rate for each currency code, and the formula multiplies the amount by it. In D2, type:

Excel formula
=B2*XLOOKUP(C2,$F$2:$F$6,$G$2:$G$6)
  • C2 is the code to look for (EUR).
  • $F$2:$F$6 is where to look for it.
  • $G$2:$G$6 is the column of rates to bring back.

The result is 1,296 (1,200 × 1.08). Fill the formula down to D6 (Windows: Ctrl+D; Mac: ⌘D):

InvoiceAmountCurrencyRateAmount (USD)
10011,200EUR1.081,296.00
1002950GBP1.271,206.50
1003180,000JPY0.00671,206.00
10042,400CAD0.731,752.00
1005500USD1500.00

The total of the USD column is 5,960.50. XLOOKUP needs Excel 2021 or Microsoft 365. In older versions, use =B2*VLOOKUP(C2,$F$2:$G$6,2,FALSE), which gives the same results. The XLOOKUP function guide and the article on how to use XLOOKUP cover the extra arguments.

Why the $ signs matter#

The $ signs keep the rate table fixed when you fill the formula down. Without them, D3 would look in F3:F7, D4 in F4:F8, and so on. The table would slide down, and the lower rows would miss rates or return #N/A.

C2 has no $, so it moves to C3, C4 and C5 as you fill. That is what you want: each row looks up its own currency. To add the $ signs, click on the reference in the formula bar and press F4 on Windows or ⌘T on a Mac. The guide to absolute references and the dollar sign explains all three kinds of reference.

Multiply or divide? Check the rate direction#

An exchange rate can be written two ways, and using the wrong one gives a badly wrong answer. With the example rate of 1.08 US dollars per euro:

  • USD per 1 EUR = 1.08. To turn euros into dollars, multiply: 1,200 × 1.08 = 1,296.
  • EUR per 1 USD = 0.9259 (1 ÷ 1.08). To turn euros into dollars, divide: 1,200 ÷ 0.9259 ≈ 1,296.

Both give the same dollars, but only if you use the matching operation. Label the rate column clearly, such as "USD per 1 unit", so nobody has to guess.

A quick sense check catches most mistakes. Here, a euro is worth a bit more than a dollar, so the dollar amount should be a bit bigger than the euro amount. If the result is smaller, you've used the rate the wrong way round.

How to round converted amounts#

Wrap the formula in ROUND so each amount stops at the cent:

Excel formula
=ROUND(B2*XLOOKUP(C2,$F$2:$F$6,$G$2:$G$6),2)

Rates often have four or more decimal places, so the raw result can be 1,206.4999 or 1,752.0012. Formatting only hides the extra digits. The hidden digits still go into totals, which can then differ from the visible amounts by a cent. ROUND changes the stored value, so the total matches what people see. The ROUND function guide and the guide to Excel's rounding functions explain when to use ROUNDUP or ROUNDDOWN instead.

To show a symbol, select the column and choose Home > Number Format > Currency, or pick the symbol in Format Cells. The article on formatting numbers as currency and percentages shows how.

How to convert between two other currencies#

With every rate stored against one base currency, you can convert between any two currencies in the table. Go through the base: multiply by the "from" rate, then divide by the "to" rate. To turn the 1,200 EUR into British pounds:

Excel formula
=ROUND(B2*XLOOKUP("EUR",$F$2:$F$6,$G$2:$G$6)/XLOOKUP("GBP",$F$2:$F$6,$G$2:$G$6),2)

That is 1,200 × 1.08 ÷ 1.27 = 1,020.47 pounds. In a real sheet, put the target code in a cell, such as I1, and refer to it instead of typing "GBP".

How to use a different rate for each date#

If rates change daily and each invoice should use the rate from its own date, add a date column to the rate table, sorted oldest to newest. Then ask XLOOKUP for the exact date or the closest earlier one:

Excel formula
=XLOOKUP(A2,$J$2:$J$40,$K$2:$K$40,"No rate",-1)

The -1 means "exact match, or the next smaller date", so a Sunday invoice takes Friday's rate. For several currencies, give each currency its own rate column in the dated table. The guide to looking up values by date walks through this pattern.

Microsoft 365 can also fetch rates with the Currencies data type on the Data tab. If you use it, check where the rates come from and when they were last updated before you rely on them.

Practise it#

Try the exercise on this page: one XLOOKUP inside ROUND, with a locked rate table. Then practise XLOOKUP in a live spreadsheet, where every formula is checked as you type, and practise absolute references so your rate table stays put when you fill down.

Try it yourself

This is a live spreadsheet. Type the formula in the green cell and press Enter.

Convert invoice 1001 to US dollars. Click D2 and multiply B2 by the rate XLOOKUP finds for C2 in the rate table (F2:F6 and G2:G6), rounded to 2 decimals, then press Enter. The rates are example values.

fx
ABCDEFGH
1
Invoice
Amount
Currency
Amount (USD)
Currency
USD per 1 unit
2
1001
1200
EUR
USD
1
3
1002
950
GBP
EUR
1.08
4
1003
180000
JPY
GBP
1.27
5
1004
2400
CAD
JPY
0.0067
6
1005
500
USD
CAD
0.73
7
8
9

Tip: XLOOKUP(C2,$F$2:$F$6,$G$2:$G$6) returns the rate for EUR. Multiply B2 by it, then wrap the whole thing in ROUND(...,2).

Practise this in a lesson

LessonXLOOKUPLook up in any direction with XLOOKUP and show a friendly message when nothing matches.LessonRelative vs absolute references ($)Lock a cell with $ so it doesn't move when you copy a formula, one of the most-tested Excel skills.Function guideXLOOKUPXLOOKUP explained with real examples: exact matches, looking left and custom not-found messages, plus a live exercise to try now.Function guideROUNDRound to decimals, whole numbers or the nearest thousand with Excel's ROUND. Learn when formatting isn't enough, then practice live.

Frequently asked questions

How do I convert currency in Excel?

+

Put the exchange rates in a table, then multiply each amount by its rate. Use XLOOKUP to find the rate for each row's currency code, for example =B2*XLOOKUP(C2,$F$2:$F$6,$G$2:$G$6).

Does Excel have a currency conversion formula?

+

There is no single built-in conversion function for live rates. You multiply by a rate. Microsoft 365 can fetch rates with the Currencies data type, but most workbooks use a rate table you control.

Should I multiply or divide by the exchange rate?

+

It depends on how the rate is written. If the rate is US dollars per 1 euro, multiply euros by it to get dollars. If it is euros per 1 US dollar, divide euros by it.

How do I convert currency without VLOOKUP or XLOOKUP?

+

For one fixed rate, multiply by a single locked cell, such as =B2*$G$2. A lookup is only needed when rows use different currencies or dates.

Sources

  • XLOOKUP function - Microsoft Support
  • ROUND function - Microsoft Support
  • Switch between relative, absolute, and mixed references - Microsoft Support

Written and checked by the ExcelReady Team. First published November 3, 2026. The practice exercise runs in the same formula engine as our lessons. Found a mistake? Read our editorial policy or email hello@excelready.app.

On this page

  1. How to set up a rate table
  2. The currency conversion formula with XLOOKUP
  3. Why the $ signs matter
  4. Multiply or divide? Check the rate direction
  5. How to round converted amounts
  6. How to convert between two other currencies
  7. How to use a different rate for each date
  8. Practise it

Keep reading

Lookups· 7 min read

XLOOKUP in Excel: Everything a Beginner Needs

XLOOKUP finds a value in one range and returns the matching item from another: =XLOOKUP(G2,B2:B9,A2:A9). It defaults to an exact match, can return a column on either side, and has a built-in if_not_found message instead of #N/A. It needs Excel 2021, Excel 2024 or Microsoft 365; it isn't in Excel 2019 or earlier.

Math· 6 min read

Absolute References and the $ Sign in Excel

An Excel absolute reference uses dollar signs, like $F$1, to lock a cell so it doesn't change when you copy or fill a formula. Use it for a value every row shares, such as a tax rate: =B2*(1+$F$1). Press F4 while editing to add the $ signs. $F1 locks only the column; F$1 locks only the row.

Basics· 5 min read

Format Numbers as Currency, Percent and Dates in Excel

To format numbers in Excel, select the cells and press a shortcut: Ctrl+Shift+$ for currency, Ctrl+Shift+% for percent and Ctrl+Shift+# for a date. On a Mac, use Control (⌃), not ⌘. Ctrl+1 (⌘1) opens Format Cells for more choices. Formatting changes only how a number looks; the value Excel stores stays the same.

More on lookups

  • Find the First Non-Blank Cell in a Row or Column in Excel
  • How to Fix #N/A Errors in VLOOKUP and XLOOKUP
  • Fuzzy Match in Excel: Find Names That Nearly Match
  • HLOOKUP in Excel (and When to Use It)
  • INDEX Function in Excel: Return a Value by Position
  • INDEX MATCH in Excel: The Beginner's Guide
All lookups articles →

Don't just read about Excel. Do it.

Practise real formulas in a live spreadsheet with instant feedback, right in your browser. Nothing to download.

Start learning for free