TRANSPOSE Function in Google Sheets
Flips an array's rows and columns. Useful for converting horizontal output to vertical (or vice versa), reorienting imports, and reshaping data for charts.
Syntax
TRANSPOSE(array_or_range)Returns: An array where the columns of the input are now rows.
Excel equivalent: TRANSPOSE (identical)
Parameters
| Name | Required | Description |
|---|---|---|
| array_or_range | Required | The range or array to transpose. |
Examples
Flip a horizontal row to vertical
=TRANSPOSE(A1:E1)5 cells across become 5 cells down.
Reshape SPLIT output
=TRANSPOSE(SPLIT(A2, ","))SPLIT returns horizontal; TRANSPOSE makes it vertical for column-style display.
Combine with QUERY for pivoted output
=TRANSPOSE(QUERY(A:D, "SELECT B, SUM(C) GROUP BY B", 1))Get grouped totals as rows, then transpose to show as columns.
When to use an alternative
- Paste special → Transpose — You want a one-time copy, not a live formula.
- ARRAYFORMULA with INDEX swaps — You need partial transposition (some rows kept, others swapped).
Common errors and how to fix them
#REF!
Cause: Output would overwrite content in adjacent cells.
Fix: Clear the destination cells, or move the formula to an empty region.
Related functions
Frequently Asked Questions
Does TRANSPOSE update live?
Yes. Unlike Paste Special → Transpose (which is a one-time operation), the TRANSPOSE formula updates whenever the source range changes.
Can I transpose a 2D range?
Yes — a 3-column 5-row range becomes a 5-column 3-row range after TRANSPOSE.