Field Guide

How to transpose data in Excel: Paste Special, the TRANSPOSE function, and when a static copy goes stale

Updated

To flip a row of data into a column, or a column into a row, in Excel: Copy the range, then paste it back rotated with the Transpose paste option for a fixed copy, or enter =TRANSPOSE(range) for a live one. Both turn rows into columns and columns into rows. The choice between them is the whole point of this page, because one is a snapshot that never changes again and the other tracks the source.

How do I transpose data in Excel?

Say three figures sit across a single row, in A1:C1, and you want them running down a column instead.

A B C
1 120 95 140
Before: the three values run across row 1, in A1, B1, and C1. This is the horizontal range you are about to rotate.

Microsoft’s steps for the paste route: select A1:C1 and press Ctrl+C, click an empty cell with room below it, then right-click and choose Transpose. One note worth heeding first: you have to Copy the range, not Cut it, because a transpose paste will not accept a cut selection.

A
1 120
2 95
3 140
After: the same three values, rotated. What ran across row 1 now runs down column A, in A1, A2, and A3. A vertical column would rotate the same way back into a row.

The rotation is a mechanical swap: the first row of the source becomes the first column of the result, the second row becomes the second column, and so on. A one-row source therefore comes out as a one-column result of the same length, and a taller block flips its width and height. If the range you rotate contains formulas, Excel updates them to match the new placement, so it is worth checking they use the absolute references you expect before you rotate; how cell references work covers the dollar signs that pin a reference in place.

Is a transposed copy static or live?

This is the part that catches people out. The paste route makes a static copy. It pastes plain values, and Microsoft is explicit that the result stands alone: “After rotating the data successfully, you can delete the original table and the data in the new table remains intact.” Because the copy holds its own values and keeps no link back, editing the source afterward leaves the rotated block showing the figures it had at paste time. It has gone out of date, and it still reads like a perfectly ordinary block of numbers.

The TRANSPOSE function is the live counterpart. It reads the source range as an array, so its result reflects the current values: change a number in the source and the rotated output changes with it. That is why Microsoft points to the function for data in an Excel table, where the paste option is unavailable, and why you would choose it whenever the rotation has to keep matching the source rather than freezing a moment.

How the TRANSPOSE function works

Microsoft’s definition is compact: “The TRANSPOSE function returns a vertical range of cells as a horizontal range, or vice versa.” You give it one argument, the range to rotate:

A3
fx
=TRANSPOSE(A1:C1)

In current Excel you type it in a single cell and press Enter, and it is entered like any other formula. It returns a dynamic array, so the rotated values spill into the neighboring cells on their own.

A3
fx
=TRANSPOSE(A1:C1)
A B C
1 120 95 140
2
3 120
4 95
5 140
A1:C1 (amber) is the source row. =TRANSPOSE(A1:C1) lives only in A3 (green) and spills the rotation down A3:A5, giving 120, 95, 140 as a column. Change a source value and the column updates on its own; only A3 holds a formula.

The spill needs somewhere to land: the cells below the formula must be empty, or it returns a #SPILL! error until you clear them. That is standard dynamic-array behavior, and array formulas and spill covers it in full. Older Excel handles the function differently: in Excel 2019, 2016, and earlier there is no spill, so you select the whole output range first and confirm the formula with Ctrl+Shift+Enter.

Can I transpose data in Excel for the web?

Yes, through the same paste option. Copy the cell range, select the empty cells where the rotated block should go, then on the Home tab select the Paste icon and choose Transpose Rows and Columns; the content of the copied cells is reoriented, so data in rows lands in columns and data in columns lands in rows. The TRANSPOSE function is available in the browser too, so the static-versus-live choice is yours there as well.

The short version

Frequently asked questions

How do I transpose data in Excel?
You have two routes. For a one-time copy, select the range and press Ctrl+C, choose an empty destination with room for the rotated block, then right-click the top-left cell and choose Transpose. For a version that stays in step with the source, enter =TRANSPOSE(range) in a cell instead. The row becomes a column and the column becomes a row either way; the difference is whether the result updates later.
What is the difference between Paste Special Transpose and the TRANSPOSE function?
Paste Special Transpose makes a static copy: it pastes fixed values, and Microsoft notes you can delete the original block afterward and the rotated data stays intact, so it never follows later edits to the source. The TRANSPOSE function returns a live array that reads the source range, so when a source value changes the transposed result changes with it. Use the paste option for a quick one-off rotation and the function when the two have to agree over time.
Does a transposed copy update when the source changes?
A Paste Special transposed copy does not. It is a snapshot taken at the moment you pasted, and because it holds its own values you can even delete the source and the copy is unaffected. That is exactly why it drifts: edit the source afterward and the rotated copy still shows the old figures. If you need the rotation to track the source, use =TRANSPOSE(range), whose result reflects the current values.
How do I use the TRANSPOSE function?
Enter =TRANSPOSE(range) where range is the cells you want to rotate, then press Enter. In current Excel it is a dynamic array formula: it spills the rotated values into the neighboring cells on its own, so a row across three cells returns a column three cells tall. Those landing cells must be empty, or the formula returns a spill error. In Excel 2019, 2016, and earlier you select the output range first and confirm with Ctrl+Shift+Enter.
Why does my TRANSPOSE formula show a #SPILL! error?
A #SPILL! error means the cells the rotated result needs to fill are not all empty. TRANSPOSE returns an array the same size as the source but in the other direction, so a row of eight values needs eight empty cells running down a column. Clear or move whatever sits in that spill range and the result appears. The same rule applies to every dynamic array function, not just TRANSPOSE.
Can I transpose data in Excel for the web?
Yes. Copy the cell range, select the empty cells where the rotated block should land, then on the Home tab select the Paste icon and choose Transpose Rows and Columns. The TRANSPOSE function works in the browser too, so you can pick a static paste or a live formula there.

Catch the errors before they ship

Reviewing a change to a model? Compare the two versions in your browser and see every changed cell, formula, and value. It's free, and nothing leaves your computer.