Why Excel makes such a mess of an IIF file
IIF is tab separated text, so Excel opens it, and then three things go wrong at once.
-
Header rows are scattered through your data. An IIF file declares its
columns with rows beginning
!, and it can declare them more than once. Those rows sit in the middle of the sheet looking like transactions. -
Every transaction takes at least three rows. A
TRNSline, one or moreSPLlines, thenENDTRNS. Sorting by date scrambles them beyond repair. - The two sides have opposite signs. Spend 45.20 and the TRNS line reads -45.20 while the SPL line reads 45.20. Sum the amount column and you get zero, every time.
Why this beats converting to CSV first
A CSV carries no type information at all, so whatever opens it has to
guess whether -45.20 is a number or a piece of text. Often it guesses
right. It guesses wrong when the decimal mark does not match the reader's regional setting,
when a value ended up in quotes, or when the date order is ambiguous — and then
=SUM() returns 0 and the date column sorts as text,
with nothing on screen telling you.
An .xlsx file stores each cell's type. Here that means
amounts are written as numbers and dates as real Excel dates, so you can
total a column, sort by date or drop the sheet straight into a pivot table the moment it
opens. The page shows you the column total before you download, and that is the number
=SUM() will give you.
If you would rather have plain text after all, the CSV converter is here.
What you get that a bank export doesn't have
Downloading a statement from your bank gives you a date, a description and an amount. An IIF file has been through QuickBooks, so it carries the work you already did:
- Category. The account on the split line. That's your categorising, kept.
- Payee. Separate from the description, because IIF keeps them apart.
- Account. Which of your accounts each transaction belongs to, by name.
- Transaction type.
CHECK,DEPOSIT,CREDIT CARD CHARGEand the rest.
Those last three columns only appear when your file actually has the data, so you do not get a wall of blanks.
It reads your file's own column headers
There is no fixed column order in IIF. The file we write has eight columns; QuickBooks exports more than twenty, and which ones depends on the version. A converter that assumes a position reads the date out of the amount column on somebody else's file, and it does not report an error while doing it.
This one maps every column by the name in the ! header, and
follows it when the file redeclares the columns halfway through.
The one thing a spreadsheet can't carry
A split transaction, where one payment is divided across several categories, has no representation in a single row. Those come out as one line for the total with the Category cell blank.
The totals stay right; the breakdown does not survive. The page lists exactly which transactions were affected rather than letting you find out during a reconciliation. Converting to QIF keeps them, because QIF has fields for splits.
Questions
Which Excel versions can open the file?
It is a standard .xlsx workbook, so Excel 2007 and later on Windows and Mac,
Excel for the web, Numbers, LibreOffice Calc and Google Sheets all open it. There is no
macro and no external link in it.
Which QuickBooks versions does this work with?
Any of them, because it reads the column layout out of the file instead of assuming one. That covers Pro, Premier and Enterprise on Windows and QuickBooks for Mac. If a file does not come out right we would like to see it.
Why is the amount negative for spending?
Because that is what IIF says, from the account's point of view. Money leaving is negative and money arriving is positive, which is what most spreadsheets and importers expect, and it means the column sums to the net change over the period.
Some transactions are missing from the download.
The page tells you when that happens and how many, rather than quietly shortening the file. A transaction is left out when it has no readable date or no readable amount, which usually means the file was truncated or written by something that got the format wrong. If the count surprises you, the original is worth a look.
Is my file uploaded anywhere?
No. Every converter here runs in the browser, and each page ships a Content Security Policy
with connect-src 'none', so your browser refuses to let the page make any
network request. Watch the Network tab in developer tools while you convert and it stays
empty.
Related
- IIF to CSV converter plain text instead
- IIF to QIF converter keeps split transactions
- Excel to QBO converter the other direction
- Why an IIF import can silently do nothing what we measured