Beginner 6 min read

TRANSPOSE in Google Sheets: Flip Rows and Columns

Learn how to use the TRANSPOSE function in Google Sheets to flip rows into columns and columns into rows. Covers the formula, paste special, and tips.

SB

Sheets Bootcamp

March 13, 2026 · Updated June 22, 2026

TRANSPOSE in Google Sheets flips your data so rows become columns and columns become rows. The TRANSPOSE function creates a live link to the source data, meaning the transposed output updates automatically when the original values change.

This guide covers the TRANSPOSE function syntax, the Paste Special shortcut for static transposing, and how to fix common errors when your output range runs into existing data.

In This Guide

What Is TRANSPOSE?

TRANSPOSE rotates the orientation of a range. A horizontal row of data becomes a vertical column, and a vertical column becomes a horizontal row. A range that’s 3 rows by 5 columns becomes 5 rows by 3 columns.

This is useful when data arrives in a layout that doesn’t work for your analysis. Monthly totals listed across columns might need to run down a column for charting. Survey responses in a single row might need to stack vertically for review.

Syntax and Parameters

Formula
=TRANSPOSE(range_or_array)
ParameterDescriptionRequired
range_or_arrayThe range or array to transpose. Rows become columns and columns become rowsYes
Important

TRANSPOSE spills its output into adjacent cells. If your source data is 4 rows by 6 columns, the output needs 6 rows by 4 columns of empty space. Any data in those cells causes a #REF! error.

How to Use TRANSPOSE: Step-by-Step

We’ll transpose a summary table from a horizontal layout to a vertical one.

1

Select your source data

The source data is in cells A1:D4 — four columns (Month, Optics, Laboratory, Surveillance) and four rows (header plus three months of data).

Summary data in A1:D4 with Month, Optics, Laboratory, and Surveillance columns

2

Enter the TRANSPOSE formula

Click cell F1 (or any cell with enough empty space). Enter the formula:

Formula
=TRANSPOSE(A1:D4)

TRANSPOSE formula in cell F1 with formula bar showing =TRANSPOSE(A1:D4)

3

Review the transposed output

The data now flows in the opposite direction. What were column headers (Month, Optics, Laboratory, Surveillance) now run down column F. Each month’s values fill a column to the right.

Transposed output in F1:H5 with rows and columns flipped from the original data

Tip

For a one-time paste without formulas, copy your range, right-click the destination, and select Paste Special > Paste transposed. This creates a static copy with formatting intact.

TRANSPOSE Examples

Transpose a Single Row to a Column

Turn a horizontal header row into a vertical list:

Formula
=TRANSPOSE(A1:G1)

A row of 7 values in A1:G1 becomes a column of 7 values. This is useful for creating label lists from headers.

Transpose a Column to a Row

Stack monthly totals stored in a column into a single row for a chart:

Formula
=TRANSPOSE(B2:B13)

Twelve values in B2:B13 become a single row of 12 values. This works well when you need horizontal data for sparklines or dashboard layouts.

Combine TRANSPOSE with SORT

Sort data by a column, then transpose the sorted result:

Formula
=TRANSPOSE(SORT(A2:D7, 3, FALSE))

This sorts the data by column 3 in descending order first, then transposes the sorted output. Each original row becomes a column in the final result.

TRANSPOSE combined with SORT showing sorted and flipped output

Common Errors and How to Fix Them

#REF! Error

The output area contains existing data. TRANSPOSE needs the destination cells to be empty. If your source is 4 rows by 3 columns, clear at least 3 rows by 4 columns at the destination.

#VALUE! Error

The argument is a single cell, not a range. TRANSPOSE needs at least a 1-by-2 or 2-by-1 range to flip. Passing a single cell like =TRANSPOSE(A1) returns a #VALUE! error.

Partial Data Showing

The TRANSPOSE formula isn’t expanding into all cells. This can happen if merged cells block the spill area. Unmerge any cells in the output range and try again.

Tip

If you need to transpose data but keep cell formatting (colors, borders, number formats), use Paste Special > Paste transposed instead of the formula. The function only carries values.

Tips and Best Practices

  1. Use TRANSPOSE for dashboard layouts. Source data often arrives in a table format that doesn’t fit a dashboard design. TRANSPOSE lets you reshape it without restructuring the original.

  2. Pair with ARRAYFORMULA for calculated transpositions. Wrap calculations inside TRANSPOSE: =TRANSPOSE(ARRAYFORMULA(B2:B7*1.1)) transposes a column of values after applying a 10% increase.

  3. Clear the destination area first. TRANSPOSE spills into adjacent cells. Any existing values cause #REF! errors. Use a dedicated output area or an empty sheet tab.

  4. Remember: the function version is live. Changes to the source data update the transposed output. If you want a frozen snapshot, use Paste Special instead.

  5. Check dimensions before transposing large ranges. A range that’s 100 rows by 3 columns becomes 3 rows by 100 columns. Make sure your sheet has enough columns to accommodate the result.

FAQ

How do I transpose data in Google Sheets?

Use the TRANSPOSE function: =TRANSPOSE(A1:D10). This flips your data so rows become columns and columns become rows. The result is a live formula that updates when the source changes. For a static copy, use Paste Special > Transposed instead.

How do I flip rows and columns without a formula?

Copy your data range, right-click the destination cell, select Paste Special > Paste transposed. This creates a static copy with rows and columns swapped. Unlike the TRANSPOSE function, this paste doesn’t update when the source changes.

Why does TRANSPOSE return a #REF! error?

The transposed output doesn’t have enough room to spill. If your source is 3 rows by 5 columns, the output needs 5 rows by 3 columns of empty space. Clear the cells in the destination area or move the formula.

Can I transpose and keep formatting?

The TRANSPOSE function only carries values and formulas, not formatting. To keep formatting, use Paste Special > Paste transposed, which preserves cell colors, borders, and number formats from the original range.

Can I use TRANSPOSE with other functions?

Yes. TRANSPOSE works inside other functions. For example, =QUERY(TRANSPOSE(A1:D4), "SELECT *") transposes data before querying it. You can also nest TRANSPOSE inside SORT, FILTER, or ARRAYFORMULA.

What is the difference between TRANSPOSE function and Paste Transposed?

The TRANSPOSE function creates a live link to the source data that updates automatically. Paste Transposed creates a static one-time copy. Use the function when the source data changes. Use paste when you need a fixed snapshot.

Frequently Asked Questions

Next Steps

Continue learning with these related tutorials: