Guides

Multi-Currency Expense Tracking for Digital Nomads

Track spending in several currencies without mixing them: one sheet per currency, a GOOGLEFINANCE conversion tab and a home-currency summary in Sheets.

By Waseem Gul8 min read

In short

The most reliable multi currency expense tracker is one Google Sheet per currency, logged in the amount you actually paid. Keep conversion out of the logging columns: a separate tab uses GOOGLEFINANCE to turn each day's local total into your home currency, and a small summary sheet adds every currency together. Your card statement stays the source for exact figures.

A multi currency expense tracker works best when it doesn't try to be clever: give each currency its own Google Sheet, log every cost in the amount you actually paid, and convert later. A separate tab turns each day's local spending into your home currency with GOOGLEFINANCE, and one summary sheet adds every currency together. Nothing gets mixed, and nothing gets converted twice.

This guide is for people who spend in two, three or five currencies a year: digital nomads, long-stay travellers and anyone paid in one currency while living in another. It covers how to split your sheets, the conversion formulas and the home-currency summary.

Why multi-currency spending is hard to track

Earning in dollars and spending in pesos, baht and euros creates problems a normal budget never has to deal with:

  • Totals stop meaning anything. 450 MXN for dinner and 12 EUR for a train ticket can't be added together. A SUM across currencies gives a number with no unit.
  • The rate keeps moving. The same 1,000 baht cost you a different amount in March and in June, so a single conversion rate for the year is wrong in both directions.
  • Your bank shows a different number. Card payments arrive days later, already converted at the bank's rate, often with a fee added. They rarely match the price you saw.
  • Cash disappears. ATM withdrawals show up as one lump in your home currency, and the street food, laundry and tuk-tuks bought with that cash never appear at all.

A bank-linked app sees only the converted card payments, late, and none of the cash. Logging the local amount yourself, at the moment you pay, is the only record that matches what you actually spent. Our guide on how to track cash spending covers the cash side in more detail.

How do you track expenses in multiple currencies?

Here's the whole system. It takes about twenty minutes to set up, and you only do it once per currency.

  1. Create one Google Sheet per currency (or per trip, see the next section), named with the currency code: "Mexico 2027 (MXN)".
  2. Log in the local currency with Date, Category, Amount and Note columns. Use the price on the receipt, not a converted guess.
  3. Keep a home-currency sheet for costs billed at home: health insurance, software subscriptions, flights booked on your home card.
  4. Add a Rates tab to each foreign-currency sheet that converts each day's total with GOOGLEFINANCE.
  5. Build one summary sheet that pulls the converted totals from every currency sheet.
  6. Check it against your statements once a month and log the bank's fees in your home-currency sheet.

When a card terminal or ATM offers to charge you in your home currency, decline and pay in the local currency. That offer, called dynamic currency conversion, almost always uses a worse rate than your bank, and it gives you a receipt in a currency you aren't logging.

Per-trip vs per-currency sheets

The first decision is how to split your spreadsheets. The rule is the same either way: one currency per spreadsheet. What changes is how long each sheet lives.

SetupBest forExample nameWatch out for
One sheet per tripShort trips in a single currency"Japan, March 2027 (JPY)"A trip through two currencies needs two sheets
One sheet per currencyNomads who return to places, or rotate through a few countries"Spending (EUR)"Add a Trip or City column so you can filter stays apart
One sheet per stayLong stays of a few months"Chiang Mai, Q1 2027 (THB)"More files to roll up in the summary
One sheet with a Currency columnPlain Google Sheets users who want one file"All spending"Every row needs converting before any total works

Per trip is the simplest for holidays and short work trips: the sheet starts and ends with the trip, and the summary at the end is the trip's cost. Our travel expense tracker guide walks through that setup, including shared costs.

Per currency suits nomads better. If you spend three months in Lisbon, two in Mexico City and then go back to Portugal, the euro spending stays in one sheet, and a City column separates the stays. You end up with three or four long-lived sheets instead of a dozen short ones.

The Currency column approach works in plain Google Sheets, but it's the most error-prone: one wrong code and that row is converted at the wrong rate, often by a factor of 20 or more. It also doesn't fit Voice Sheet, where the currency is set per spreadsheet and every currency column in that spreadsheet shares it.

Whichever you choose, keep a home-currency sheet alongside. Plenty of nomad costs never touch the local currency: travel insurance, a co-working membership billed in dollars, the flight to the next country. Logging those in a converted "local" amount only adds rounding errors.

Convert with GOOGLEFINANCE

Google Sheets has exchange rates built in. GOOGLEFINANCE("CURRENCY:THBUSD") returns the current rate for one Thai baht in US dollars. Swap in any two currency codes (EURGBP, MXNCAD, JPYAUD) for the pair you need.

Keep conversion on its own tab

Put the conversion formulas on a separate tab, not next to your entries. The tab you log to then holds only the values you typed, which keeps it easy to read on a phone and safe to edit. (Voice Sheet, for example, warns you before saving an edited entry that contains formulas, because saving replaces them with plain values.)

Convert daily totals rather than individual entries. A two-week trip with 150 entries needs 14 rate lookups instead of 150, and the sheet stays fast.

Build the Rates tab

Add a tab called Rates with four columns. These formulas assume your logging tab is called Expenses, with dates in column A and amounts in column C.

ColumnHeaderFormula in row 2What it does
ADateType the first day, then =A2+1 in A3One row per day of the trip or month
BLocal total=SUMIFS(Expenses!C:C, Expenses!A:A, A2)Everything you spent that day
CRate=INDEX(GOOGLEFINANCE("CURRENCY:THBUSD", "price", A2), 2, 2)That day's baht-to-dollar rate
DHome total=B2 * C2That day's spending in dollars

Fill the formulas down for as many days as the sheet covers. When you pass GOOGLEFINANCE a date, it returns a small table with a header row, so INDEX(..., 2, 2) picks the rate out of it.

For some dates, often weekends and holidays, there's no rate and the cell shows #N/A. This version looks at the previous week and uses the most recent rate it finds:

=LET(r, GOOGLEFINANCE("CURRENCY:THBUSD", "price", A2-7, A2), INDEX(r, ROWS(r), 2))

Rates for dates in the past don't change, so the Rates tab gives the same answer every time you open it.

For long stays: monthly rates

If a sheet covers a year, daily rows get long. Use one row per month instead: put the first of each month in column A, total the month with SUMIFS, and convert at the month's average rate.

=SUMIFS(Expenses!C:C, Expenses!A:A, ">="&A2, Expenses!A:A, "<="&EOMONTH(A2, 0))
=AVERAGE(INDEX(GOOGLEFINANCE("CURRENCY:EURUSD", "price", A2, EOMONTH(A2, 0)), 0, 2))

The first formula is the month's local total. The second is the average euro-to-dollar rate for that month (AVERAGE skips the text header that GOOGLEFINANCE returns). Multiply them for the home-currency total. If SUMIFS with date ranges is new to you, our SUMIFS by month guide explains it step by step.

Build a home-currency summary

With a Rates tab in each currency sheet, the last step is one small summary spreadsheet in your home currency that adds everything together.

Because each currency lives in its own spreadsheet, the summary uses IMPORTRANGE to read from them:

=SUM(IMPORTRANGE("https://docs.google.com/spreadsheets/d/…", "Rates!D2:D"))

Paste each currency sheet's URL in place of the example. The first time, Sheets asks you to Allow access between the two files; click it once and the link stays.

A summary for a year on the road might look like this:

SpreadsheetCurrencyLocal totalHome total (USD)
Spending (MXN)MXN61,400IMPORTRANGE from Rates
Chiang Mai, Q1 2027 (THB)THB98,750IMPORTRANGE from Rates
Spending (EUR)EUR4,120IMPORTRANGE from Rates
Home costs (USD)USDn/a=SUM(IMPORTRANGE(…, "Expenses!C2:C"))
Total=SUM(D2:D5)

The figures above are only an example. The useful numbers come from dividing your own totals by the days in each place: cost per day by country is what tells you whether Mexico City or Lisbon is actually cheaper for the way you live.

Check it against your statements

The converted totals are estimates. GOOGLEFINANCE uses a market rate, and your bank uses its own rate plus, on many cards, a foreign transaction fee of a few percent. Once a month:

  • Compare the converted card spending with your statement. A gap of 1–3% is normal; a much bigger one usually means a missed entry or a wrong date.
  • Log the fees (foreign transaction fees, ATM fees, transfer fees) as a Fees category in your home-currency sheet. Over a year they add up, and seeing the total is the best argument for a fee-free card.
  • Use statement amounts for anything exact, such as a client reimbursement or an expense claim. The sheet is for budgeting; the statement is the record of what left your account.

Log in any currency with Voice Sheet

Everything in this guide works with Google Sheets alone. Voice Sheet, an iPhone and Android app, makes the logging step faster. Each spreadsheet you connect uses one of 30 currencies, and you swipe between them in the app, so your peso sheet and your euro sheet sit side by side. It doesn't convert between them; the Rates tab above does that in your own sheet. See how the per-sheet setup works on the multi currency expense tracker page.

Entries made with the form are saved on the phone and sync when you're back online, which matters on buses, ferries and borders; the offline expense tracker guide covers how that queue works, and the offline tracking page has the details. You can also say an entry, such as "pad thai 120, food", while you're connected (3 voice entries a day free, unlimited with Premium).

If you live out of a backpack for part of the year, the Voice Sheet for travelers page shows the full trip setup. Whatever tool you log with, the method doesn't change: one currency per sheet, the price you actually paid, and conversion done once, in its own tab.

Frequently asked questions

How do I track expenses in multiple currencies?

Give each currency its own spreadsheet and log every cost in the currency you paid in. Then add a conversion tab that multiplies each day's local total by that day's exchange rate from GOOGLEFINANCE. A summary sheet can pull the converted totals from every currency sheet into a single home-currency figure.

Can I mix currencies in one Google Sheets column?

You can type them, but you can't add them up. SUM treats 500 baht and 20 euros as 520 of nothing. If you want one sheet, add a Currency column and convert each row before totalling. Separate sheets per currency are simpler, and in Voice Sheet the currency is set for the whole spreadsheet.

How do I get a historical exchange rate in Google Sheets?

Use GOOGLEFINANCE with a date: =INDEX(GOOGLEFINANCE("CURRENCY:EURUSD", "price", A2), 2, 2) returns the euro-to-dollar rate for the date in A2. The function returns a small table with headers, so INDEX picks out the rate. If a date has no rate, look back a few days for the most recent one.

Why doesn't my converted total match my bank statement?

GOOGLEFINANCE uses a market rate, while your bank applies its own rate and often a foreign transaction fee. The gap is usually a few percent. Treat the converted total as an estimate for budgeting, and use the statement amounts when you need the exact home-currency cost, such as for a reimbursement.

Does Voice Sheet convert currencies?

No. Voice Sheet records amounts in the spreadsheet's currency, one of 30 supported, and doesn't fetch exchange rates. Because entries land in your own Google Sheet, you can add a GOOGLEFINANCE conversion tab yourself. Keep it on a separate tab from the one you log to, so your entries stay plain values.

  • currency
  • digital nomads
  • travel
  • googlefinance
  • google sheets
  • expense tracking
New to Voice Sheet?

Say it, and it's in your Google Sheet.

Voice Sheet adds rows to your Google Sheets by voice, from a pasted list, a home screen widget or a form built from your columns. It works offline and never connects to your bank.

See everything Voice Sheet does →
Voice Sheet — say it, and it's in your Google Sheet

Keep reading

Log it the moment it happens

Add a row from your phone in seconds, by voice, form or home screen widget. Free to start, voice included.

Download on the App StoreGet it on Google Play