First time here? Check out the FAQ!

How to convert QIF to Excel?

+1 vote
asked by
reshown by

I was sent a QIF file that includes accounting information for my church. I need free and simple software to view that data. Please help

2 Answers

0 votes
answered by (100k points)
edited by

Importing a QIF file into Excel is not possible because Excel can't handle these type of files. You will need to convert the QIF file to a format that Excel can open. For this type of job QIF2CSV is recommended because it's simple software and it performs its task pretty well. Download and install the software and open it from your desktop or Start Menu. Locate your QIF file and add it to the program. Then use the Save to CSV and Open button and the file will automatically open into the Excel software. From there, you can view, manage and edit the file for your own needs.

0 votes
answered by

Yes it is possible if you know how to create macros...

I hacked this together in half an hour.

Paste the contents of the QIF into column A starting at row 1

Run this macro:

Sub Macro1()
' Macro1 Macro

ActiveCell.Value = "Date"
ActiveCell.Value = "Amount"
ActiveCell.Value = "Description"

j = 0

AlastRow = Range("A" & Rows.Count).End(xlUp).Row 'get last row
For i = AlastRow To 2 Step -4
    Range("C2:F2").Offset(j, 0).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Application.CutCopyMode = False
    Range("A2:A5").Delete Shift:=xlUp
    'Selection.Delete Shift:=xlUp
    j = j + 1

j = 0

ClastRow = Range("C" & Rows.Count).End(xlUp).Row 'get last row
For i = ClastRow To 2 Step -1

foo = Range("C2").Offset(j, 0).Value

bar = Right(foo, Len(foo) - 1)

Range("C2").Offset(j, 0).Value = bar
Range("C2").Offset(j, 0).NumberFormat = "m/d/yyyy"
    j = j + 1

j = 0

DlastRow = Range("D" & Rows.Count).End(xlUp).Row 'get last row
For i = DlastRow To 2 Step -1

foo = Range("D2").Offset(j, 0).Value

bar = Right(foo, Len(foo) - 1)

Range("D2").Offset(j, 0).Value = bar
Range("D2").Offset(j, 0).Style = "Currency"
    j = j + 1

j = 0

ElastRow = Range("E" & Rows.Count).End(xlUp).Row 'get last row
For i = ElastRow To 2 Step -1

foo = Range("E2").Offset(j, 0).Value

bar = Right(foo, Len(foo) - 1)

Range("E2").Offset(j, 0).Value = bar

 j = j + 1

End Sub

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
To avoid this verification in future, please log in or register