Skip to content
OneKitly

Merging Workbooks: One Sheet Each, or One Table for All

Published 9/14/2026 · 4 min read · File tools

Daniel Okonkwo

Daniel OkonkwoFront-end developer and tech writer at OneKitly

Web performance · File formats

Checked against 3 sources

View profile
In short

There are two merges and they answer different questions. Appending sheets puts every tab of every workbook side by side in one file, keeping the documents separate — right when the files are genuinely different things, a budget and a headcount and a price list, and you only want them travelling together. Merging rows stacks every row of every file into a single sheet, which is the one that lets you sort by date, filter by region and total a column across the whole year. The second has one subtlety that is not cosmetic: each source file carries its own header row, and left in place those headers land in the middle of the data, where a sort scatters them and a total counts them as records. So the first header is kept and the rest are dropped. Widths are squared off to the widest row for the same reason — a ragged sheet gives spreadsheet software missing cells rather than empty ones, and they are read differently.

Twelve monthly reports can become twelve tabs or one table of twelve months. Only the second can be sorted and summed in one go — and it is the one where the header rows need handling.

Thirty-one characters, and what happens past them

Excel refuses to open a workbook containing a sheet name longer than thirty-one characters. That limit is old and absolute, and it bites exactly when merging, because two files often carry a tab of the same name and the obvious fix — adding a suffix — pushes a long name over the edge. So the suffix is made to fit rather than appended: "Relevé mensuel des ventes par région et par produit" is fifty-one characters, becomes "Relevé mensuel des ventes par r" when truncated, and on a collision becomes "Relevé mensuel des ventes par_2" — still exactly thirty-one. The alternative, appending blindly, produces a file that will not open at all, which is a worse outcome than a shortened tab name.

Merge first, clean second

The order matters and the reason is arithmetic. Deduplicating each file separately cannot see a row that appears in two of them, which is the whole point of merging monthly exports where the last week of one file repeats the first week of the next. Merge into one sheet, then remove duplicate rows, then remove empty rows and columns — in that order the tool sees everything, and the count it reports is a count of the real problem rather than of one file's share of it.

One check is worth doing before anything else: add up the row counts of the sources and compare with the merged sheet. If the total is short, a file did not parse — and a silently skipped source is the only failure of this operation that will not announce itself.

Which merge answers which question
What you wantWhich merge
Total a column across twelve monthly filesRows into one sheet
Sort every record by date, all sources togetherRows into one sheet
Send a budget, a headcount and a price list as one fileSheets side by side
Keep each department's tab identifiableSheets side by side
Merge Excel filesCombine several workbooks into one, keeping every sheet and renaming on collision.Try the tool

Frequently asked questions

What if my files have different columns?
The row merge stacks them anyway and pads every row out to the widest one, so nothing is lost — but the columns will not line up, because the merge matches by position and not by header name. If your files genuinely differ, reorder the columns to match before merging, or merge them and then move the misplaced column by hand. There is no way for the tool to know that column three in one file is column four in another.
Are the formulas kept?
Appending sheets keeps the sheets as they are, formulas included — but a formula that referred to another tab will now be pointing at whatever tab has that name in the merged file, which may not be the one it meant. Merging rows reads values, so the result carries numbers rather than formulas. If the sources contain formulas that matter, convert them to values before merging and you will know exactly what travelled.
Can I go the other way and split a big workbook?
Yes — splitting writes one file per sheet, which is the natural companion to the sheet merge and the usual way to send one department its own tab without sending it everyone else's. The two are not quite inverses: split then merge gives you the sheets back, while merge then split gives you the sheets of a merged file, which for a row merge is a single sheet.

Articles you may find interesting

All guides
How-toOne File per Tab, and What a Split Leaves BehindSplitting a workbook writes one .xlsx per sheet, named after the tab. It carries the values across and not the formulas — which is the right default when the point is to send one department its own tab.ExplainerA Cell of Three Spaces Counts as Empty, and That Is the PointWhitespace is the whole reason these tools exist. A row of blanks looks empty, is not empty to a strict test, and quietly survives every filter you apply after it.ExplainerThe Number 1 and the Text "1" Are Not DuplicatesDeduplication compares whole rows exactly, cell type included. Five identical-looking rows came out as three, because one held a number, one a string and one a string with a leading space.ExplainerThe .ods File That Is Valid, and That Your Reader RefusesOpenDocument makes styles.xml optional. Several readers demand it and reject the whole document without it — "Cannot find file styles.xml in zip" on a file that is not broken.ExplainerThe Workbook with Twenty-Three Formulas That Reported NoneA cell can hold a formula and no cached result. A reader that skips empty cells throws the formula away with them — and says the file has none. One parsing option separates the two cases.ExplainerConverting Formulas to Values Keeps the Cached Answer, Not the CalculationA spreadsheet file stores both the formula and the last answer Excel computed. Stripping the formula leaves the stored answer — and leaves a blank wherever the file never carried one.

Related tools

Sources

Spotted a mistake in this article?