Skip to content

Report Sheet Tidier

Unmerges cells, fills the gaps left behind, drops decoration rows and turns a report into a flat table.

A report sheet is not a table: it has a title above the data, merged cells that hold their value once, a two-row header, spacer rows and a note underneath. Every one of those breaks a pivot table or an import. This turns it into a flat table and tells you what it changed.

🔒 Runs entirely in your browserexcelcleanunmergetidy

Drop the report sheet

Merged cells, spacer rows and stacked headers are what this is for.

This reads values, not formatting: bold subtotal rows look like ordinary rows here, so a subtotal is kept as data rather than guessed at and deleted.

How to use it

  1. Drop the sheet and read the summary

    It lists what it did — ranges unmerged, rows dropped, which row became the header — rather than silently producing a different table.

  2. Compare before and after

    The toggle switches the preview. If a row you needed has gone, turn off the rule that took it.

  3. Export as .xlsx or .csv

    Either way the output is one header row and the data, which is what a pivot table or a database import expects.

Common questions

Will it delete my subtotal rows?

No. This reads values, not formatting — a bold subtotal row looks like an ordinary row here, so it is kept as data rather than guessed at and deleted. Filter them out afterwards if you need to.

How does it find the header row?

By looking for the first row that is mostly text with few empty cells and is followed by rows that look like data. Everything above it — titles, dates, logos — is discarded, which is the point.

What is a two-row header?

A parent row of merged group names over a child row of column names — “Q1” spanning “Jan, Feb, Mar”. Joined, that becomes “Q1 — Jan”, which is one label per column and can actually be used as a key.

Feed it from

Next

These accept what this tool produces, so the result can go straight in.