Skip to content
AZ Tools

CSV Transpose — Swap Rows and Columns

Transpose CSV data so rows become columns and columns become rows, in your browser.

Transposed CSV

Input: 3×3 · Output: 3×3

How to use

  1. Paste your CSV into the input box.
  2. Choose the delimiter that matches your data.
  3. Copy the transposed CSV from the output box.

About this tool

Show

Paste CSV data and flip it diagonally, so the first row becomes the first column and every column becomes a row. This is the fix for the shape mismatch that turns up constantly in exports: a report that puts each month across the top when your chart needs them down the side, or a wide sheet that a database import wants tall. Fields are parsed by the RFC 4180 rules, so a quoted cell containing commas, doubled quotes, or a line break survives the trip and is re-quoted in the output. Ragged rows are padded with empty cells, which is what keeps the grid rectangular instead of shifting later columns up. Comma, semicolon, or tab can be used as the delimiter. Everything runs locally — nothing is uploaded.

Frequently asked questions

Does it handle quoted fields?

Yes. Fields wrapped in double quotes are parsed per RFC 4180, including commas, line breaks and escaped double quotes ("") inside them, and are re-quoted as needed in the output.

What happens with rows of different lengths?

The grid is squared off to the widest row. Missing cells in shorter rows become empty fields after transposing.

Which delimiters are supported?

Comma, semicolon and tab. The same delimiter is used to parse the input and to write the transposed output.

Is my data sent anywhere?

No. The transpose happens entirely in your browser; nothing is uploaded.

When would I actually need to transpose a CSV?

Whenever the shape a report was written in is not the shape the next program wants. Exports often lay months across the top for a human reader, while a chart library or a database import expects one record per row — transposing is the whole conversion, with no data touched.

Does the header row survive?

It becomes the first column, which is the correct result rather than a loss: transposing swaps axes, so what labelled the columns now labels the rows. If the destination expects a header row of its own, the old first column has become it.

Guides on this topic

Related tools