swaps rows and columns of any Markdown table

Transpose a Markdown table

Flip rows into columns and back. Handy when your data was entered the wrong way around or you need a different reading axis.

Table Transposer
Input
106 B
5 lines
Output
110 B
4 lines
Status
ready
live
Ratio
1.04×
out/in
input · table
output · transposed
| name | apple | pear | banana |
| --- | --- | --- | --- |
| qty | 10 | 3 | 7 |
| price | 1.50 | 2.00 | 0.75 |
Quick Start

How to transpose a Markdown table

Reads the pipe-delimited table, swaps row and column indices, and re-emits a fresh table with the original first column as the new header.

  1. 01

    Paste a Markdown table

    Standard pipe-syntax table with a header row.

    Parsing runs through marked with GFM extensions enabled — tables, task lists, strikethrough, and fenced code blocks all match GitHub’s rendering.

    inputGFMmarkedCommonMarklive
    input · markdownrows · GFM
    | a | b |
    | 1 | 2 |
    loaded · GFMGFM · ready
  2. 02

    Pad ragged rows

    Short rows are padded with empty cells.

    Soft-break behaviour is configurable: by default a single newline becomes a space (CommonMark), toggle on for chat-style <br> insertion.

    padsoft-breaksoptionsconfiglive
    fix · optionseven · live
    [a, b]
    [1, 2]
    options applied · livelive
  3. 03

    Swap axes

    Columns become rows.

    The preview is scoped under a .mde class so its CSS doesn’t bleed into the rest of the page. Output HTML is whitespace-controlled for clean diffs.

    transposepreviewscoped CSSrenderstable
    out · renderedcols · ready
    | a | 1 |
    | b | 2 |
    rendered · liverendered
  4. 04

    Paste back

    Use in your docs, reports, or test fixtures.

    Export covers both raw Markdown and rendered HTML; downloads stream as text/markdown or text/html via Blob + object URL.

    exportclipboard.md.htmlblob
    ✓ · exportedmd · done
    ✓ table
    shipped · ready to shipsuccess
Pro tips

Author Markdown that renders everywhere

GFM is the safe default

GitHub-Flavored Markdown is the de-facto baseline (tables, task lists, strikethrough). CommonMark is stricter but ubiquitous as a fallback.

Soft-break behaviour varies

A single newline is a space in CommonMark, a <br> in GFM. Toggle soft breaks when source matters.

Escape inside code fences

Backticks inside fenced blocks need a longer fence — three becomes four. Use ~~~ if your content has many backticks.

Anchors are slugified

GitHub lowercases, strips punctuation, and joins with hyphens. Duplicate headings get -1, -2 suffixes.

Tables need a header row

The dash row sets alignment (:---, :-:, ---:). Use Table Aligner for diff-friendly columns.

Front matter is YAML

Triple-dash blocks at the top of files are parsed by static-site generators. Use the Front-Matter Validator to catch syntax errors.

Use Cases

When to transpose

When the axis is wrong, fix it in one click.

Wide tables

Convert wide comparison tables to tall lookup tables. Render path uses marked with GFM extensions enabled (tables, task lists, strikethrough, autolinks), so what you preview matches what GitHub publishes bit-for-bit. Soft-break behaviour is configurable for chat-style vs prose Markdown.

GFM-compliant

Spec sheets

Reformat product specs from horizontal to vertical layout. Pairs cleanly with the Markdown Cheatsheet for syntax you can't quite remember — callout blocks, footnotes, definition lists. Output stays diff-friendly so style-only changes don't drown out real edits in PRs.

GitHub-perfect

Pivot results

Quick pivot for small datasets without a spreadsheet. Cross-platform safe: anchors, code fences, and tables behave identically on GitHub, GitLab, Bitbucket, and Gitea. Heading-anchor slugs follow GitHub's lowercase-and-hyphenate rules so deep links survive a docs migration.

diff-friendly

Comparison docs

Switch between feature-on-row vs feature-on-col styles. No server roundtrip — perfect for proprietary content you can't paste into a public tool. The full marked + GFM bundle ships with the page, so it works offline once loaded.

render-stable

Time series

Flip date rows to date columns for headers. Front matter (YAML / TOML / JSON) passes through unchanged so static-site pipelines (Jekyll, Hugo, Astro, Eleventy) read it correctly. Pair with the Front-Matter Validator to catch syntax errors before deploy.

cross-platform

Surveys

Tabulate survey questions as columns instead of rows. Output is reproducible: identical input always produces identical Markdown, so doc-generation scripts can rely on it for snapshot tests and embedded into release workflows.

SEO-friendly
FAQ

Frequently asked questions

Short rows are padded with empty cells on the right so the result is rectangular.
The separator row is regenerated with default left alignment. Run the Table Aligner after if you want column alignment back.
Multi-line cells aren't supported in Markdown's basic table syntax — keep cells single-line.
You need a header + separator row to be parseable. Add a placeholder header first.
No. Transposition runs locally in your browser.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!