What TRANSPOSE Does
The TRANSPOSE function flips the orientation of a range or array, turning rows into columns and columns into rows. A dataset that spans 5 rows and 3 columns becomes 3 rows and 5 columns after transposing. It is useful for reformatting data for charts, converting horizontal headers into vertical lists, and reshaping imported data that arrived in the wrong orientation.
Syntax
=TRANSPOSE(array_or_range)
| Parameter | Description |
|---|---|
| array_or_range | The range or array to transpose. Can be a cell range like A1:D3 or an array returned by another function. |
Basic Examples
Flip a horizontal list to vertical
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Mon | Tue | Wed | Thu |
=TRANSPOSE(A1:D1)
Result:
| Output |
|---|
| Mon |
| Tue |
| Wed |
| Thu |
The single row becomes a single column.
Transpose a table
| A | B | C | |
|---|---|---|---|
| 1 | Name | Age | City |
| 2 | Sara | 28 | Austin |
| 3 | Raj | 34 | Denver |
=TRANSPOSE(A1:C3)
Result:
| Col 1 | Col 2 | Col 3 |
|---|---|---|
| Name | Sara | Raj |
| Age | 28 | 34 |
| City | Austin | Denver |
Rows and columns swap entirely. What was row 2 (Sara, 28, Austin) is now column 2.
Convert SPLIT output from horizontal to vertical
SPLIT produces horizontal output by default. If you need it vertical:
=TRANSPOSE(SPLIT("apple,banana,cherry", ","))
Result:
| Output |
|---|
| apple |
| banana |
| cherry |
Advanced Examples
Compare two layouts side by side
When you need to see monthly data both as a timeline (horizontal) and as a list (vertical), put the raw data in one layout and TRANSPOSE it elsewhere:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Jan | Feb | Mar | Apr |
| 2 | 4200 | 3800 | 5100 | 4700 |
In another area:
=TRANSPOSE(A1:D2)
Result:
| Month | Revenue |
|---|---|
| Jan | 4200 |
| Feb | 3800 |
| Mar | 5100 |
| Apr | 4700 |
This vertical format is often better for charting and pivot tables.
Use TRANSPOSE inside other functions
TRANSPOSE can feed into QUERY, SORT, or other array functions. For example, to stack two horizontal rows into a single vertical column:
=TRANSPOSE({A1:E1, A2:E2})
The curly braces combine the two rows into one horizontal array, and TRANSPOSE flips them vertical. This is handy when consolidating scattered horizontal data into a single column for analysis.
Common Mistakes
- Not having enough space for the output. TRANSPOSE spills into adjacent cells. If those cells contain data, you get a
#REF!error. Clear enough room in the destination area before entering the formula. - Expecting the transposed result to update dynamically when the source grows. If you transpose
A1:C3and later add row 4 to the source, the transposed output will not include it. You need to expand the range manually or use an open-ended range likeA1:C(though this may include empty rows). - Trying to transpose a non-rectangular range. TRANSPOSE works on rectangular blocks. If you select a jagged range or multiple non-contiguous areas, it will not behave as expected. Always pass a single contiguous rectangle.
SheetAI Tip
Don't want to memorize this syntax? With SheetAI, just type what you need in plain English and the formula is generated for you. Install SheetAI to try it free.