List / Column Transpose Tool

Flip delimited text on its diagonal: rows become columns and columns become rows. Paste a grid — CSV, TSV, space- or pipe-separated — and it auto-detects the delimiter (or pick one), transposes the matrix, and joins each new row with the output delimiter of your choice. Ragged rows are padded so the result stays rectangular, and you can set custom input and output delimiters. It runs entirely in your browser.

How to use the List / Column Transpose Tool

Paste a grid of delimited text — each line is a row, and each row is split into cells on the delimiter. By default the input delimiter is auto-detected from the first line (it picks whichever of comma, tab, pipe or semicolon appears most), but you can force one, or choose custom to type your own separator. The tool transposes the matrix so the cell at row r, column c moves to row c, column r; the info line shows the before and after dimensions (for example "3 rows × 3 cols → 3 rows × 3 cols").

The output delimiter defaults to the same character as the input, so a CSV transposes back to CSV, but you can switch it — transpose a CSV and emit tab-separated output, say, for pasting into a spreadsheet column. If rows have different lengths, the result is padded with empty cells so every output row is the same width and the grid stays rectangular rather than skewing. A common use is converting between "wide" and "long" shapes: a single header row with values beneath becomes one label-value pair per line, which is handy when a column of data is easier to work with than a row. Everything is computed locally in your browser.

Transposing rows and columns of text

To transpose a grid is to swap its two axes: the first row becomes the first column, the second row the second column, and so on. It is the same operation as transposing a matrix in mathematics, or "Paste Special → Transpose" in a spreadsheet — but applied directly to delimited text, which is often more convenient than round-tripping through an application when you just have some CSV or tab-separated data on the clipboard.

The need comes up constantly once you notice it. Data arrives in the wrong orientation for what you want to do: a table laid out with one record per column instead of per row won't import cleanly, a header row of field names is easier to scan as a vertical list, and many tools expect "tall" data (one observation per line) while the source is "wide" (one observation per column). Transposing also turns a single row of comma-separated values into a one-per-line list and vice versa — a quick way to reshape between a flat list and a delimited line without find-and-replace gymnastics.

Doing it correctly on text means handling a few details a plain swap would miss. The delimiter has to be identified — comma, tab, space, pipe or semicolon are the usual suspects, and auto-detection saves a step — and the output delimiter need not match the input, since reshaping is often paired with reformatting. Ragged input, where rows have unequal cell counts, would otherwise produce a jagged or misaligned result, so the cells are padded out to a consistent width and the grid is treated as a true rectangle. This tool keeps the operation purely textual and local: it splits, transposes and re-joins with your chosen separators in the browser, with an info line confirming the dimension change so you can see at a glance that the reshape did what you expected.

Common use cases

  • Fix orientation. Convert a table that came column-per-record into the row-per-record shape a tool expects.
  • Row to list. Turn a single comma-separated header row into a one-item-per-line vertical list.
  • Wide to long. Reshape spreadsheet-style wide data into tall data for analysis tools.
  • Reformat while reshaping. Transpose a CSV and emit tab-separated output to paste into a spreadsheet column.

Frequently asked questions

What does transposing actually do?

It swaps rows and columns: the value at row r, column c moves to row c, column r. A grid that is 3 rows by 5 columns becomes 5 rows by 3 columns. The first column of the output is built from the first cell of every input row, and so on.

How is the delimiter detected?

Auto-detect counts commas, tabs, pipes and semicolons on the first line and uses whichever is most frequent, defaulting to comma if none appear. You can override this by selecting a specific delimiter, or choose "custom" to type any separator — useful for unusual formats.

Can the output use a different delimiter than the input?

Yes. The output delimiter defaults to "same as input" but can be set independently, so you can read comma-separated data and emit tab- or pipe-separated output. This is handy for transposing and reformatting in one step, for example to paste a result into a spreadsheet.

What happens if rows have different numbers of cells?

The result is padded with empty cells so every output row has the same length, keeping the grid rectangular. Missing positions become blank rather than shifting later values, so columns stay aligned even when the input is ragged.

Does it handle quoted CSV fields with embedded delimiters?

No — it splits on the raw delimiter and does not parse RFC 4180 quoting, so a quoted field containing the delimiter would be split. For simple grids this is exactly what you want; if your data has quoted fields with embedded commas, clean or convert them first, or use a dedicated CSV tool.