Convert QFX to Excel: Opening Quicken Files in a Spreadsheet
Quick Answer: Excel cannot open a QFX file as a table because QFX is tagged OFX text, not rows and columns. Either import it into Quicken and export or copy a transaction report to Excel, run it through a converter that reads OFX and writes CSV or Excel, or extract the
<STMTTRN>blocks with a short script. Going the other way, from Excel to QFX, needs a CSV save and a converter.
A QFX file is the Quicken Web Connect version of an OFX bank download: plain text in which each transaction is a block of tags such as <DTPOSTED>, <TRNAMT> and <NAME>. Excel expects delimited rows, so opening a QFX shows either an error or a single column of tags. Converting it means reading those tags and laying each transaction out as one spreadsheet row.
Drop your bank statement here
PDF or OFX ยท Max 4.4 MB
Uploaded over an encrypted connection. We never ask for your bank login. Privacy
Preview free with no account. Free account to download.
Why can't Excel open a QFX file?
Open a .qfx in Notepad or TextEdit and you will see something like this:
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20260314120000
<TRNAMT>-45.67
<FITID>202603140007
<NAME>OFFICE DEPOT 1123
<MEMO>POS PURCHASE
</STMTTRN>Most QFX files use the older SGML style of OFX, in which the leaf tags like <TRNAMT> have no closing tag. That makes them invalid XML, so Excel's XML import refuses them, and there are no commas or tabs for the CSV import to split on. The information is all there; it just needs a reader that understands the tags. Our OFX file format guide describes the full structure, and the QFX additions are covered in our OFX to QFX converter guide.
What are the ways to get a QFX into Excel?
| Method | Needs | Effort | Best when |
|---|---|---|---|
| Import into Quicken, export a report | Quicken | Low | You already use Quicken |
| OFX/QFX to CSV converter | A converter app or service | Low | You have several files or no Quicken |
| Python script | Python | Medium, once | You convert files often or want control |
| Text editor plus Excel cleanup | Nothing | High | A one-off with a handful of transactions |
Method 1: Through Quicken
If you use Quicken, import the QFX into the matching account as a normal Web Connect download, accept the transactions, then build a transaction report filtered to that account and date range. Quicken's reports can be exported or copied into Excel; the exact menu names differ between Windows and Mac versions, so check Quicken support for your edition. The upside is that you get Quicken's categories and renamed payees in the spreadsheet. The downside is that the transactions are now in your Quicken file, which you may not want for a file you only meant to inspect.
Method 2: A converter
Converters that accept OFX-family files and write CSV or XLSX do the tag reading for you. Because QFX is OFX with a few Intuit tags added, a tool that reads OFX can usually read a QFX, sometimes only after you rename a copy from .qfx to .ofx. QuickBankConvert is one such tool: it takes OFX uploads as well as PDF statements and returns CSV or Excel with date, description, category and signed amount columns. If your bank offers a plain OFX download next to the Quicken one, download that version and upload it. A free account covers CSV and Excel downloads for a few statements a month.
Method 3: A short Python script
This reads every transaction block and writes a CSV that Excel opens directly:
import csv
import re
text = open("checking.qfx", encoding="utf-8", errors="replace").read()
def tag(block, name):
match = re.search(rf"<{name}>([^<\r\n]*)", block, re.I)
return match.group(1).strip() if match else ""
rows = []
for block in re.findall(r"<STMTTRN>(.*?)</STMTTRN>", text, re.S | re.I):
posted = tag(block, "DTPOSTED")[:8]
rows.append({
"Date": f"{posted[:4]}-{posted[4:6]}-{posted[6:8]}",
"Payee": tag(block, "NAME"),
"Memo": tag(block, "MEMO"),
"Amount": tag(block, "TRNAMT"),
"Type": tag(block, "TRNTYPE"),
"Transaction ID": tag(block, "FITID"),
})
with open("checking.csv", "w", newline="", encoding="utf-8") as out:
writer = csv.DictWriter(out, fieldnames=list(rows[0]))
writer.writeheader()
writer.writerows(rows)The regex works on both SGML-style files and newer XML-style OFX, because it reads up to the next < or line break rather than relying on closing tags. Dates come out in YYYY-MM-DD form, which Excel recognises in every region.
Method 4: By hand
For five or ten transactions, open the file in a text editor, copy the transaction section, and paste it into column A of a sheet. Use Data > Text to Columns with > as the delimiter to split tag names from values, then filter and rearrange. It works, but past a dozen rows a converter or the script is quicker.
Which QFX tags become which spreadsheet columns?
Whatever method you use, it helps to know what each tag means so you can decide which columns to keep.
| Tag | Level | Meaning | Suggested column |
|---|---|---|---|
DTPOSTED | Transaction | Date the bank posted it | Date |
DTUSER | Transaction | Date you made the purchase, if the bank supplies it | Transaction date (optional) |
TRNAMT | Transaction | Signed amount | Amount |
TRNTYPE | Transaction | DEBIT, CREDIT, CHECK, POS, ATM, XFER and similar | Type |
NAME | Transaction | Payee or short description | Payee |
MEMO | Transaction | Extra detail, often the full bank description | Memo |
CHECKNUM | Transaction | Cheque number | Check no. |
FITID | Transaction | The bank's unique ID for the transaction | Transaction ID |
ACCTID | Account | Account number, sometimes masked | Put once in a header cell |
DTSTART, DTEND | Statement | The date range the download covers | Header cells |
LEDGERBAL | Statement | Closing balance and its date | Header cells, for reconciliation |
Many banks truncate NAME to 32 characters and put the rest in MEMO, so joining the two (=TRIM(B2&" "&C2)) often gives a more readable description.
Why convert a QFX to Excel at all?
Usually for one of these reasons:
- Sharing with someone who does not use Quicken, such as an accountant, a business partner or a lender asking for transaction history.
- Tax preparation, where you want to filter a year of transactions by payee and total them in a pivot table.
- Checking a download before importing it, to see exactly what the bank sent without adding anything to your Quicken file.
- Moving to another app that takes CSV but not OFX-family files.
For the first three, the converter or script routes are better than going through Quicken, because they leave your Quicken data untouched.
What should you check once the data is in Excel?
- Signs.
TRNAMTis already signed: negative for money out. Do not flip it again if the file came from a credit card account; check one known charge. - Dates.
DTPOSTEDcan include a time and a timezone offset such as[-5:EST]. Keep only the first eight digits for the date. - Balance. The file's
<LEDGERBAL>block holds the ending balance and its date. Sum your Amount column and compare with the change between statements. - Duplicates. If you combine several QFX downloads with overlapping ranges, remove duplicates using the Transaction ID (FITID) column, which is unique per transaction.
How do you convert Excel to QFX?
The reverse trip has two steps. First save the sheet as a CSV with one transaction per row: date, payee, signed amount, and a memo if you like. Then convert the CSV to QFX with a converter that inserts a valid Intuit bank ID, because Quicken checks that ID before importing. Our guide to converting CSV to QFX covers that step, including when Quicken's own CSV import makes conversion unnecessary.
If the spreadsheet was itself typed up from PDF statements, it is often simpler to start from the statements. QuickBankConvert writes QFX from a PDF statement on the Plus plan; it does not convert an Excel or CSV file into QFX. The PDF to Excel page shows the spreadsheet side of the same conversion.
Related guides
Frequently Asked Questions
Can Excel open a QFX file?
Not as a table. QFX is tagged OFX text, usually in an SGML style that is not valid XML, so Excel's CSV and XML imports cannot split it into columns.
What is the easiest way to convert QFX to Excel?
If you use Quicken, import the file and export a transaction report to Excel. Otherwise, use a converter that reads OFX-family files and writes CSV or Excel.
Is a QFX file the same as an OFX file?
Almost. QFX is OFX with Intuit-specific tags such as INTU.BID added, so tools that read OFX can usually read a QFX, sometimes after renaming it to .ofx.
How do I convert Excel to QFX?
Save the sheet as a CSV, then use a CSV to QFX converter that adds a valid Intuit bank ID. Quicken for Windows can also import the CSV directly if it follows Quicken's column order.
Why are my QFX dates strange in Excel?
OFX dates are written as YYYYMMDD, often followed by a time and timezone. Keep the first eight digits and convert them to a date.
Ready to convert your bank statement?
Free to preview. No bank login. Results in about a minute.
Convert a statement