Excel WRAPROWS & WRAPCOLS: Reshape and Reorganize Data in Seconds
Data rarely arrives in the shape you need it. You might have a long single-column list that should be laid out as a grid, or a flat row of values that needs to become a structured table. Historically, reshaping data in Excel required complex INDEX/MATCH combinations, VBA scripts, or manual copy-paste. In 2026, two dynamic array functions — WRAPROWS and WRAPCOLS — solve this in a single formula.
This guide walks you through how WRAPROWS and WRAPCOLS work, when to use each one, and practical real-world scenarios where they'll save you significant time.
What Are WRAPROWS and WRAPCOLS?
Both functions take a one-dimensional range (a single row or column) and convert it into a two-dimensional grid. They are mirror images of each other:
WRAPROWS — takes a flat list (row or column) and wraps it into multiple rows of a specified width.
WRAPCOLS — takes a flat list and wraps it into multiple columns of a specified height.
Think of them as the Excel equivalent of text wrapping — instead of text flowing to the next line when it hits the margin, your data wraps into a new row or column when it hits the specified limit.
Understanding WRAPROWS
Syntax:
=WRAPROWS(vector, wrap_count, [pad_with])
Parameters:
vector — the source range or array (must be a single row or column)
wrap_count — how many values per row before wrapping to the next row
pad_with (optional) — what to put in empty cells if the last row is incomplete (default is #N/A; use "" for blank or 0 for zero)
Basic Example: Convert a Column List to a Grid
Suppose you have 12 product names in cells A1:A12 and you want them displayed in a 3-column grid for a report. In an empty cell, enter:
=WRAPROWS(A1:A12, 3)
Excel spills a 4×3 grid with your 12 products arranged left-to-right, top-to-bottom. If the count isn't divisible evenly, the last row is padded with #N/A (or your custom pad_with value).
Practical Example: Monthly Calendar Layout
If you have a column of 31 day numbers (1–31) and want them in a 7-column calendar grid (7 days wide):
=WRAPROWS(A1:A31, 7, "")
The result is a 5-row grid with days 1–31 arranged in calendar format, with empty cells padding the last row if needed. Combine this with SEQUENCE to generate the day numbers automatically:
=WRAPROWS(SEQUENCE(31), 7, "")
Understanding WRAPCOLS
Syntax:
=WRAPCOLS(vector, wrap_count, [pad_with])
WRAPCOLS works identically to WRAPROWS, but wraps vertically instead of horizontally. It fills column by column (top-to-bottom) rather than row by row (left-to-right).
Basic Example: Turn a Row Into a Multi-Column Layout
You have 20 survey responses in a single row (A1:T1) and want them in a 5-row layout for easier reading:
=WRAPCOLS(A1:T1, 5)
The result is a 5×4 grid: 4 columns of 5 rows each, filling from top to bottom, left to right.
Practical Example: Organizing Employee Names into a Department Grid
You have 18 employee names in A1:A18 and want to display them as a 6-person-per-column grid for a department chart:
=WRAPCOLS(A1:A18, 6, "")
This produces 3 columns of 6 names each — perfect for a printable org chart layout.
WRAPROWS vs WRAPCOLS: Choosing the Right One
The choice depends on how you want your data to read:
Use WRAPROWS when you want data to read left-to-right (like reading a book). Item 1 is in row 1 col 1, item 2 is in row 1 col 2, etc.
Use WRAPCOLS when you want data to read top-to-bottom first (like columns in a newspaper). Item 1 is in col 1 row 1, item 2 is in col 1 row 2, etc.
Advanced Combinations
Combining WRAPROWS with FILTER
Filter a list of items and immediately lay them out in a grid:
=WRAPROWS(FILTER(A2:A100, B2:B100="Active"), 4, "")
This filters only Active records from your list and displays them in a 4-column grid — fully dynamic. Add a new Active item and the grid updates automatically.
Combining WRAPCOLS with SORT
Sort a list alphabetically then display it in columns:
=WRAPCOLS(SORT(A2:A50), 10, "")
The result is alphabetically sorted names arranged in columns of 10 — ideal for a printed reference sheet or directory.
Tips for Using WRAPROWS and WRAPCOLS in 2026
Always set pad_with — the default #N/A can trigger unexpected errors if your result feeds into another formula. Use "" for blank or 0 for numeric contexts.
Leave enough spill room — dynamic arrays need empty cells to spill into. Place WRAPROWS and WRAPCOLS formulas in areas with no adjacent data.
Use COUNTA to set wrap_count dynamically — for example, wrap by the count of column headers: =WRAPROWS(A1:A100, COUNTA(H1:K1)).
Pair with Copilot — if you describe your reshaping goal to Excel Copilot, it will suggest the correct WRAPROWS or WRAPCOLS formula and the right wrap_count for your data.
Conclusion
WRAPROWS and WRAPCOLS are two of those Excel functions that seem simple until you realize how many everyday data challenges they solve. Whether you're building calendars, displaying data for print, creating grid views for dashboards, or restructuring imported flat files, these functions eliminate manual rearranging and replace it with formulas that update automatically.
Next time you catch yourself copy-pasting data into a grid, stop and ask: can WRAPROWS or WRAPCOLS do this in one formula? Chances are, the answer is yes. Give them a try on your next project and share your results in the comments — we'd love to see what you build!











