Home · Free tools · Unpivot

Unpivot

Drop a spreadsheet whose months, products or questions run across the columns. Tick the columns that identify a row — region, product, employee — and every other column is turned into rows: one Attribute column holding the old header, one Value column holding the number. It is Power Query's Unpivot Other Columns, without the query. Blank cells are skipped and counted. Download CSV or .xlsx; nothing is uploaded.

Your wide table

Drop .xlsx, .csv or .tsv here, or click to choose

Doing this every month? Do it once in TableDI 2, save it as a job, and run it again next month. Download TableDI 2 free

Nothing is uploaded. The file is read by JavaScript in this tab and never leaves your computer — no server sees it, and closing the tab throws it away.

How to unpivot a table without Power Query

  1. Drop the wide table. The first row must be the header — its labels become the values of the new Attribute column.
  2. Tick the identifying columns. The first column is ticked for you. Add every column that should repeat on each output row, such as region and product.
  3. Name the two new columns. Attribute and Value by default; month and units, or question and answer, read better downstream.
  4. Download the long table. CSV or .xlsx, ready for a pivot table, a chart or a database import.

Why a wide table has to become long

A sheet with Jan, Feb, Mar across the top is easy to read and hard to use. A pivot table cannot group by month, because "month" is not a column; a chart wants one series per field; a database import wants one row per fact. Unpivoting is the step that turns column headers into values: EMEA | Desk | 120 | 95 | 140 becomes three rows, EMEA | Desk | Jan | 120 and so on.

The Power Query way, and what it costs

In Excel the standard answer is Unpivot Columns in Power Query: load the range as a query, select the identifying columns, choose Unpivot Other Columns, close and load to a new sheet. It is the right tool when the same source refreshes every month. For a one-off it is a query, an editor and a refresh dependency left inside the workbook. The formula alternatives in the forums (INDEX with MOD and INT, or TOCOL with HSTACK in Microsoft 365) work, and are hard to hand to the next person.

The one decision: which columns identify a row

Everything not ticked is unpivoted. Tick region and product and you get one row per region, product and month. Forget product and the product names become values in the Attribute column next to the months, which is never what you wanted — so the column list is shown as checkboxes with the first one ticked, and the counts above the result say how many columns were turned into rows.

Blank cells

A blank in a wide table usually means "nothing that month". By default those cells produce no row and are counted as skipped, so the long table has only real values. Tick Keep rows for blank cells if a missing value has to stay visible — for example when the next step counts how many months were reported.

When the same report arrives wide every month

Unpivoting the same export each period is a step that belongs in a job. TableDI 2 is a desktop app for file work you redo every period: it keeps your sources, rules and delivery as a job, so next month you drop in the new files and run it again. Everything runs on your own machine.

Questions people ask

How do I unpivot data in Excel without Power Query?

Drop the sheet here, tick the columns that identify a row, and download the long table. Every other column becomes rows of Attribute and Value — the same result as Power Query's Unpivot Other Columns, without creating a query in the workbook.

What is the difference between pivot and unpivot?

A pivot turns values in a column into column headers and summarizes the numbers under them. Unpivot does the reverse: column headers become values in one column, and the numbers under them become one value column — one row per original cell.

Can I keep more than one identifying column?

Yes. Tick as many as you need — region, product and channel, for example. Each is repeated on every output row.

What happens to empty cells?

They are skipped by default and the count is shown, so the long table only holds real values. Tick Keep rows for blank cells to keep a row with an empty Value instead.

Are my files uploaded anywhere?

No. The file is read by JavaScript running in this tab, using the browser's own DecompressionStream to unzip .xlsx and a parser that runs on your machine. The page does load two visitor counters — static.cloudflareinsights.com and this site's own /_vercel/insights — but no request carrying your data appears in the network tab while you use it. Close the tab and the data is gone.

Doing this every month?

In TableDI 2 you do it once, then save it as a job. Next month you drop in the new files and run it again.

macOS, Apple silicon and Intel; Windows is in progress (what to do meanwhile). Free is not a trial — no account, no card.

Last reviewed 2026-10-01 by the TableDI team. Something wrong on this page? Tell us — it is one inbox, read by the people who build TableDI.