2 Ways to Transpose Data in Excel (2026 Update)

·
5 min read

Help Desk Geek is reader-supported. We may earn a commission when you buy through links on our site. Learn more.

You need to flip rows into columns (or columns into rows) in Excel, and the old Ctrl+Shift+Enter trick you found online isn’t working the way you expected. If you’re on Microsoft 365 or Excel 2021+, there’s a much simpler way to do it now, with no array gymnastics required.

Which method should you use?

There are two ways to transpose data in Excel, and the right one depends on whether you want the result to stay linked to the original data or just be a static copy.

MethodData stays linked?Keeps formatting?Best for
TRANSPOSE() formulaYes, auto-updatesNoLive reports, dashboards
Paste SpecialNo, static copyYesOne-time layout changes

Method 1: TRANSPOSE() Formula (Recommended for Live Data)

The TRANSPOSE() formula keeps the transposed data linked to the source. If you update the original, the transposed version updates automatically. On Microsoft 365 and Excel 2021+, you don’t need to pre-select a range or press Ctrl+Shift+Enter anymore. Just type the formula and press Enter.

If you’re on Microsoft 365 or Excel 2021+ (dynamic arrays)

  1. Click the cell where you want the transposed data to start (for example, G1).
  2. Type =TRANSPOSE(A1:B6) replace A1:B6 with your actual source range.
  3. Press Enter. Excel automatically spills the result into the surrounding cells.
Excel 365 spreadsheet showing =TRANSPOSE(A1:B6) entered in a single cell with the spilled result filling adjacent cells automatically, no selection required

You should see the data appear across the neighboring cells instantly, with no pre-selection and no Ctrl+Shift+Enter. If you edit any cell in the original range, the transposed output updates to match.

Pro tip: If you see a #SPILL! error after pressing Enter, there are occupied cells blocking the spill range. Select those cells and press Delete to clear them, then the formula will resolve.

If you’re on Excel 2019 or older (legacy array formula)

Older Excel versions don’t support dynamic arrays, so you need to tell Excel upfront how many cells the result will occupy.

  1. Count the dimensions of your source range. If your source is 2 columns × 6 rows (e.g., A1:B6), the transposed result will be 6 columns × 2 rows.
  2. Select a blank area of that exact size, for example, select a 6×2 block starting at A12.
  3. Without clicking anywhere else, type =TRANSPOSE(A1:B6) into the formula bar.
  4. Press Ctrl+Shift+Enter instead of just Enter. Excel wraps the formula in curly braces: {=TRANSPOSE(A1:B6)}.
Excel 2019 spreadsheet showing the TRANSPOSE array formula with curly braces in the formula bar and transposed data filling the pre-selected range

The curly braces confirm Excel treated this as an array formula. Don’t type the braces manually. They only appear when you use Ctrl+Shift+Enter.

Important: Because the transposed cells are linked to the source, deleting the original data will cause a reference error in the transposed range. If you need to delete the source, use Method 2 instead.

Method 2: Paste Special Transpose (Static Copy)

Paste Special gives you a clean, independent copy of the data in the new orientation, with no formulas and no link to the original. Formatting comes along for the ride, which the formula method doesn’t do.

  1. Select the data you want to transpose.
  2. Press Ctrl+C to copy it (don’t use Cut, Paste Special Transpose only works with Copy).
  3. Click the top-left cell of the empty area where you want the transposed data to appear.
  4. Right-click and choose Paste Special.
  5. Check the Transpose checkbox and click OK. Alternatively, hover over the paste icons in the right-click menu and click the Transpose icon (it looks like a small grid with a rotation arrow). Hovering gives you a live preview before you commit.
Excel Paste Special dialog box with the Transpose checkbox checked at the bottom-right, before clicking OK

The transposed data is now completely independent. You can delete the original range without affecting it, and any changes you make to the original won’t carry over.

Common issues

ProblemCauseFix
#SPILL! errorCells in the spill range aren’t emptyClear the cells: Home > Clear > Clear All
Formula shows in every cellLegacy Excel, forgot Ctrl+Shift+EnterDelete the result, re-select the range, re-enter with Ctrl+Shift+Enter
Transpose option is grayed outSource data is an Excel TableConvert to a range first: Table Design > Convert to Range
Formatting is missing after transposeTRANSPOSE() formula doesn’t carry formatsUse Paste Special and check both Formats and Transpose
Transposed data doesn’t updateYou used Paste Special (static)Switch to the TRANSPOSE() formula method

Conclusion

For most people on Microsoft 365, the =TRANSPOSE() formula is the better default. Type it in one cell, press Enter, and you’re done. Paste Special is still the right call when you need a one-time, formatting-intact copy that has no dependency on the original data. If you’re still on Excel 2019 or older, the Ctrl+Shift+Enter array method works fine, but it’s a solid reason to consider upgrading, as the dynamic array version is noticeably less painful.

If you run into other formula issues in Excel, check out our guide on Microsoft Excel formulas not working or calculating, and if you’re new to how Excel organizes data, our breakdown of Microsoft Excel workbooks and worksheets is a good place to start. You may also find it helpful to know how to find circular references in Microsoft Excel if your linked formulas start producing unexpected results.