# Import Expenses into QuickBooks Online from Excel

- Author: SimpleBankConvert (https://www.simplebankconvert.com)
- Published: 2025-02-21
- Updated: 2025-02-21
- Category: Invoices, bills and lists
- Canonical: https://www.simplebankconvert.com/blog/import-expenses-into-quickbooks-online-from-excel

> How to import expenses into QuickBooks Online from Excel: the bank upload route, the expense columns that carry over and payees to set up first.
To import expenses into QuickBooks Online from Excel, save the sheet as a CSV with a date, description and amount per cost, then upload it to the bank or card account that paid. Each row waits in For review for a payee and category. Set up regular payees first so rules fill them in.

## Two routes for an Excel expense list: bank upload or Import data

An Excel expense list can reach QuickBooks Online by two routes. The bank upload treats each row as a bank or card line that you categorize afterwards. The Import data screen creates expense transactions directly. The bank upload suits costs paid from an account QuickBooks tracks; Import data suits a list that is already fully coded.

Intuit's page of [common questions about importing data into QuickBooks Online](https://quickbooks.intuit.com/learn-support/en-us/help-article/import-export-data-files/common-questions-importing-data-quickbooks-online/L4OYJRFdj_US_en_US) lists expenses among the records the Import data screens accept, alongside bank data. The same page says files must be CSV, Excel or Google Sheets, under 1,000 rows, and that the first row is used for mapping and not imported.

### How to choose

Ask where the money left from. If every expense on the sheet was paid from one checking account or one credit card, and that account is in QuickBooks, the bank upload is the safer route. The rows become the bank lines themselves, so there is only ever one copy of each cost, and reconciling the account later works as normal.

If the sheet mixes payment methods, already has an account code on every row, and those costs will never come through a feed, Import data creates finished expenses in one go. The trade-off is that each created expense still has to agree with what the bank shows, or the bank account will not reconcile.

This post follows the bank upload route in detail, because it is the one most spreadsheets fit. Desktop users have a different set of screens, covered in [importing expenses into QuickBooks Desktop from Excel](/blog/import-expenses-into-quickbooks-desktop-from-excel).

## Shaping the expense spreadsheet for the bank upload

The bank upload reads a CSV with either three columns, Date, Description and Amount, or four, Date, Description, Credit and Debit. In the three-column layout an expense is a negative number. Everything else in your sheet, such as category or notes, is either dropped or has to be folded into the description before you save.

Intuit's article on [formatting CSV files for bank transactions](https://quickbooks.intuit.com/learn-support/en-us/help-article/bank-transactions/format-csv-files-excel-bank-transactions-quickbooks/L4BjLWckq_US_en_US) shows both layouts and lists the clean-up rules. Use one date format for the whole file. If the Credit and Debit headers include the word "amount", remove it. Leave cells blank rather than typing a zero.

### A worked example

Here is a made-up expense sheet kept by an example freelance photographer. The values are examples.

| Date | Vendor | What for | Category | Paid with | Cost |
| --- | --- | --- | --- | --- | --- |
| 03/03/2026 | Lens Rental Co | Lens hire, Smith wedding | Equipment rental | Visa | 85.00 |
| 03/07/2026 | City Parking | Parking downtown shoot | Travel | Visa | 18.50 |
| 03/12/2026 | Cloud Photo Storage | Monthly plan | Software | Visa | 9.99 |

All three were paid on the same Visa card. Reshaped for an upload to that card account, the file becomes:

| Date | Description | Amount |
| --- | --- | --- |
| 03/03/2026 | Lens Rental Co - Lens hire | -85.00 |
| 03/07/2026 | City Parking - Parking downtown shoot | -18.50 |
| 03/12/2026 | Cloud Photo Storage - Monthly plan | -9.99 |

The vendor moved to the front of the description, because that is the text QuickBooks and your bank rules read. The cost became a negative amount. The category and payment method columns were removed, since the upload has nowhere to put them.

### Card accounts and the sign

Intuit's formatting article warns that credit card files can show amounts with the opposite sign, so a payment can look like a charge. When you upload to a credit card account, check the first few rows on the review screen. If your charges show as payments, flip the signs in the sheet and upload again. Fixing it before the import is far quicker than editing each line afterwards.

### Saving the file

Save as CSV, not as an Excel workbook, for the bank upload. On a Mac, Intuit's article says to save as a Windows CSV. Open the saved CSV in a plain text editor once to check that no stray totals row or blank line came along at the end.

## Expense columns that carry over and the ones that do not

Only three things from an Excel expense sheet survive the bank upload: the date, the description text and the amount. Category, payee, memo, receipt links and payment method all stay behind. You add payee and category later in For review, by hand or with bank rules that read the description text.

| Excel column | Bank upload | What to do |
| --- | --- | --- |
| Date | Carried | Map it to Date and confirm the format. |
| Vendor | Not a field | Put it at the start of the description. |
| What for | Not a field | Add a short version after the vendor. |
| Category | Not carried | Choose it in For review, or let a rule set it. |
| Paid with | Not carried | Use it to split the file by account before uploading. |
| Cost | Carried | Map it to Amount as a negative number. |
| Receipt file | Not carried | Attach receipts to the expense after it is created. |

### Why put the vendor in the description

Bank rules in QuickBooks Online match on the description. If every row for Cloud Photo Storage starts with that name, one rule can set the payee and the Software category for all of them, this month and every month after. A description that starts with the purpose, such as "Monthly plan", gives a rule nothing reliable to match.

### Keep the original sheet

Your Excel file still has the category you chose at the time, which is useful when reviewing. Keep it open beside QuickBooks while you categorize, and keep a copy with the month's records afterwards.

## Which payees should exist before the expense import?

Set up the vendors you pay repeatedly before you upload, and give each one the exact name that appears at the start of your descriptions. Then build a bank rule for each regular vendor. One-off payees can be added during review. Doing it in this order means most rows arrive in For review already filled in.

For the example sheet, that means three vendors: Lens Rental Co, City Parking and Cloud Photo Storage. If you have dozens, a vendor list can be imported in one go; the post on [importing vendors into QuickBooks Online](/blog/import-vendors-into-quickbooks-online) covers the columns. Watch the spelling. "Cloud Photo Storage" and "Cloud Photo Storage Inc" become two different vendors, which splits your spending reports.

### Accounts as well as payees

Check the expense categories exist too. If your Excel sheet uses "Equipment rental" and your chart of accounts calls it "Rent or lease of equipment", decide now which name wins. Mapping categories on the fly during review is where most mistakes slip in.

## Categorizing uploaded expense lines in For review

After the upload, each row sits in the For review tab of the bank or card account until you confirm it. For each line, choose the payee and category, or accept what a bank rule suggested, then add it. Nothing affects your profit and loss until you do. A row you add becomes an expense in QuickBooks Online.

According to [Intuit's guide to manually uploading transactions](https://quickbooks.intuit.com/learn-support/en-us/help-article/import-transactions/manually-upload-transactions-quickbooks-online/L0rE9OXBz_US_en_US), the upload screens run in order: choose Upload from file, pick the file, pick the QuickBooks account, match the columns, select the rows, then confirm. The same page limits a file to 350 KB and 1,000 lines, which a yearly expense sheet can exceed. Split a large sheet by quarter or by month.

### Working through the list

Sort the review list by description so all rows for one vendor sit together. Categorize the first, check the result, then select the rest and apply the same payee and category in a batch. Leave the unusual rows to last and do them one at a time.

### Expenses you have not paid yet

If a row in your sheet is a cost you owe but have not paid, it is not an expense line yet. It is a bill. Uploading it to a bank account would show money leaving that has not left. Bills have their own import, explained in [importing bills into QuickBooks Online](/blog/import-bills-into-quickbooks-online).

## Will imported expenses duplicate my bank feed?

Imported expenses duplicate a bank feed whenever the same account is connected and the feed also brings in those dates. Before uploading, check the account's earliest feed date and remove every row on or after it. Only rows from before the feed started, or from an account with no feed, should go in by upload.

The same risk applies to the Import data route. An expense created by Import data is a transaction in your books. When the bank feed then brings in the matching card line, QuickBooks will offer it as a match. Accept the match, or you will have the cost twice. Before accepting, check that the card line and the expense really are the same purchase.

### Spotting a duplicate after the fact

Run an expense report by vendor for the month and look for pairs: same vendor, same amount, same or nearby date. A doubled monthly subscription is the classic sign. If a whole uploaded file went in twice, undo the upload rather than deleting lines one by one.

## Checking an Excel expense import against the statement balance

The check that proves an expense import worked is the account balance. After all rows are added, the QuickBooks balance for that bank or card account on the last day of the period should equal the closing balance on the statement. If it does not, a row is missing, doubled, or has the wrong sign.

For the photographer's Visa card, the three example expenses add up to 113.49. If the card started March at 0.00 with no other activity, QuickBooks should show 113.49 owed at the end of March, the same figure as the statement.

### When your spreadsheet came from a PDF

Many expense sheets start life as a PDF card or bank statement copied into Excel by hand. Copying is where rows get skipped. The fastest way to find a skipped row is the statement's own running balance: each line's balance should equal the previous balance plus or minus that line. [Using the running balance on a PDF bank statement](/blog/pdf-bank-statement-running-balance) shows how to walk down the column and find the break.

If you would rather not retype the statement at all, [SimpleBankConvert](/get-started) is being built to turn the PDF into a CSV or QBO file shaped for the QuickBooks Online bank upload, with withdrawals already shown as minus amounts. You would still categorize the lines in For review, but the dates and amounts would come straight from the statement.
