Merge Excel files — keep every sheet as its own tab
Combine many workbooks into one, every original sheet preserved as its own tab — without moving sheets one by one.
Free. Unlimited. No signup.
Runs entirely in your browser · No upload · No signup · Open the network tab and check
“I want to create a file for the whole year that will show me the monthly tabs coming from the quarter files (Jan-Feb-Mar from Q1 - Apr-May-Jun from Q2, etc). But again I don't want them in one sheet, I want them in their own sheet.”
— Microsoft Q&A
“In their own sheet” is the whole point of this page. Most merge tools flatten everything into one sheet; this one keeps every tab.
How it works
- 1
Drop your workbooks
Two or more .xlsx files — drop them together or add them one at a time. Everything is read in your browser; nothing uploads.
- 2
Choose how to combine
Keep every sheet as its own tab (the default), or switch to one combined sheet with rows appended under the first file's header.
- 3
Merge and download
One merged.xlsx. In tabs mode, a single-sheet workbook contributes a tab named after its file; a multi-sheet workbook keeps its own sheet names.
A worked example: four quarters, twelve monthly tabs
The scenario from the thread above: four files — Q1.xlsx, Q2.xlsx, Q3.xlsx, Q4.xlsx — each holding three monthly sheets (Jan, Feb, Mar in Q1, and so on). Drop all four, keep the default mode, and one run produces merged.xlsx with all twelve monthly tabs, original names and order preserved: the whole-year file, without moving a single sheet by hand.
Twenty files instead of four works the same way — that is the point.
Constraints & edge cases
What happens when two files have a sheet with the same name?
+
Both are kept. The second gets a numeric suffix — "March" and "March 2" — instead of overwriting or failing, so a January-through-December merge with repeated template names still lands all its tabs.
Why did my long sheet name get shortened?
+
Excel itself caps sheet names at 31 characters — a merged file with a longer tab name would not open. Long names are trimmed to fit, and when a numeric suffix is needed for a collision, the trim makes room for the suffix too.
Is formatting preserved?
+
Values and column widths are; cell styling is not. Numbers and dates survive as real types — not text — and each tab keeps its source sheet's column widths, but colors, borders, and conditional formats are not carried over in this version. The contract is: your data intact, a clean file, every tab present.
What about formulas — especially ones pointing at other files?
+
The merged file holds each cell's last calculated value, not the formula. Cross-file references are exactly why: a formula pointing at another workbook breaks the moment it moves, so the merge writes what the formula last evaluated to instead of shipping you a file full of #REF! errors.
How many files can I merge at once?
+
There is no file-count gate — merging is free and unlimited. The practical limits are 100 MB per file at intake, a 50 MB per-file processing guard, and your machine's memory, since every workbook is inflated in the browser to be read.
How to merge Excel files and keep every sheet, by hand
The reason this query is dominated by forum threads rather than tools is that Excel's own merge features do the opposite of what people mean. Consolidate combines numbers. Power Query stacks rows. Neither preserves your tabs. What follows is what actually preserves them.
Move or Copy, sheet by sheetAbout fifteen seconds per sheet — so a workbook of eight tabs, twelve times over, is around twenty minutes of clicking
- 1Open the destination workbook and one source workbook at the same time.
- 2In the source, right-click a sheet tab and choose Move or Copy.
- 3Set the To book dropdown to your destination workbook, choose where it lands, and tick Create a copy.
- 4Repeat for every sheet in every workbook.
Where it breaks. This is the method that works and it is the reason the query exists. The problem is arithmetic: it is one dialog per sheet, and nothing about it can be batched. Sheets with the same name get silently renamed to Sheet1 (2), so the tabs you end up with often do not match the names you started with.
Select all sheets, then move togetherFaster — one dialog per workbook rather than per sheet
- 1In the source workbook, click the first sheet tab, then Shift-click the last one to select them all.
- 2Right-click and choose Move or Copy, and move the whole selection in one action.
Where it breaks. A useful speed-up that most tutorials skip, and it turns a per-sheet job into a per-workbook one. It still breaks on duplicate sheet names, and grouped sheets are easy to leave grouped by accident — after which an edit meant for one tab is written to all of them at once.
A VBA macroAn hour to write, seconds to re-run
- 1In the Visual Basic editor, loop over the files in a folder with Dir, open each one, and use Sheets.Copy to append its sheets to the destination workbook.
- 2Handle the name collisions yourself, usually by prefixing each sheet with its source filename.
Where it breaks. The name-collision handling is the part that turns an hour into an afternoon. Excel sheet names cap at 31 characters and reject : \ / ? * [ ], so a prefixing scheme built from filenames needs truncating and sanitising, and the first workbook with a long name is where the naive version stops working.
Windows and Mac
Move or Copy behaves identically on Windows and Mac. Only the VBA route differs meaningfully, since file-system access in macros is written differently on macOS and Mac Excel needs explicit folder permission before a macro can read a directory.
Two or three workbooks is a five-minute job and you should just do it. It is the twelve-workbooks-every-month case, where duplicate tab names and grouped-sheet accidents start costing real time, that justifies anything else.
Merge them here instead — free, no signup, and your file never leaves your machine.