Merge Excel files by stacking rows
Upload between 2 and 20 files with the same structure and download a single table containing all their rows, one below the other.
The problem it solves
The classic case is twelve monthly exports that need analysing together:
sales-january.xlsx, sales-february.xlsx, and so on to December. They all
have the same columns, and all that is missing is putting them end to end.
Doing it by hand means opening twelve files, copying the data range from each one — without the header row, or you will duplicate it — and pasting it below the previous one. It is mechanical, and that is exactly where mistakes creep in: a forgotten tab, a range that stopped a row short, a header row pasted into the middle of the data.
Here you upload the files, choose how the columns should be matched, and download one table.
By column name or by position
This is the important decision and it is worth understanding.
By column name (recommended) matches Amount with Amount even if it is
the third column in one file and the fifth in another. It is what rescues the
merge when someone reordered the columns in March or inserted a new one in
August.
By position ignores the titles and stacks the first column onto the first, the second onto the second, and so on. Use it when the files have no header row, or when the headers are worded differently in each file but you know the order is right.
If you merge by position and some file has a different number of columns, the tool warns you. That almost always means the file is misaligned and you would be mixing amounts with dates without noticing.
The columns in the result
The result does not keep only the first file's columns: it uses the union of
them all, in the order they first appear. If September's file has a
Discount column the others lack, that column exists in the result and stays
empty on the rows that never had it.
Keeping only the first file's columns would drop data silently, which is the worst kind of loss: nothing fails, information is simply missing.
The source column
The "Add a column with the source file" option is on by default and appends a
column holding the name of the file each row came from. You can rename it; the
default is Source file.
It is worth keeping: it is what later lets you filter "February only", reconcile totals per file, or trace an odd row back to where it came from. Once stacked, rows without that column are indistinguishable.
Frequently asked questions
How many files can I merge at once?
Between 2 and 20. If you have more, merge in batches and then merge the results: the output of a merge is an ordinary file and can be stacked again.
What if the files have different columns?
Not a problem when you match by name. The result includes every column from every file and leaves blanks where a row never carried that value.
Is each file's header row repeated?
No. The header row is recognised as such and appears only once, at the very top. That is precisely the most common mistake when copying and pasting by hand.
Can I mix .xlsx and .csv in the same merge?
Yes. The output format follows the first file, so if you start with an .xlsx you will download an .xlsx.
What if the files do not share a structure?
Then stacking them makes no sense: each one deserves its own sheet. That is what Merge into sheets is for. And if you want the opposite, breaking one large file apart, see Split by column.