Zoho Sheet WRAPCOLS: Column Groups, Padding and Record Layouts
Reshape a list into columns in Zoho Sheet with complete input vectors, scan-order checks, record-pairing pitfalls and group totals.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
WRAPCOLS fills a rectangle down each column before moving to the next column. With a wrap count of 3, each output column has three positions. This is useful for arranging a sequential list into fixed-height groups while keeping its original order visible.
Availability and version history
- Introduced: Included in the fifteen-function launch linked from Zoho’s March 2023 release history. No numbered cloud release is given.
- Availability: Documented in the current Zoho Sheet web-service help; no final supported-version endpoint is established.
- Scope: Mobile, offline and imported-workbook parity remain separately unverified.
- Checked: October 14, 2026, against the official WRAPCOLS entry. Layouts and numerical examples were independently calculated; no native Zoho Sheet execution was performed.
Syntax and the difference from wrapping rows
WRAPCOLS(values; wrap_count; [fill_with])
The official reference accepts a single row or column, a required wrap count and an optional fill value. The default fill is an unavailable-value error. A text fill such as "-" can make an incomplete last column easier to inspect.
The count controls column height, not the number of output columns. WRAPROWS instead controls row width. Both appear separately in Zoho’s fifteen-function launch.
Arrange eight labels into columns
Create LabelColumns, reserving A1:S12. Enter N1,N2,N3,S1,S2,S3,W1,W2 as text down A2:A9. These are eight individual labels, not a comma-separated string in one cell. Keep D2:F4, H2:I5, K2:M4, O2:O10 and Q2:Q10 empty.
Put =WRAPCOLS(A2:A9;3;"-") in D2. The expected result is:
| Output row | D | E | F |
|---|---|---|---|
| 2 | N1 | S1 | W1 |
| 3 | N2 | S2 | W2 |
| 4 | N3 | S3 | - |
Each column receives the next three inputs. F4 is a supplied padding string, not a missing original label inferred by the function.
Zoho’s dynamic-array instructions say to enter the formula in one anchor cell and press Enter. Results occupy adjacent cells automatically. Leave each complete output rectangle empty and do not fill duplicate formulas across it. An obstruction produces the documented #SPILL! error.
In H2 enter =WRAPCOLS(A2:A9;4). H2:I5 becomes N1,S2 / N2,S3 / N3,W1 / S1,W2. All eight positions are filled from the source, so there is no padding.
In K2 enter =WRAPCOLS(A2:A9;3) to compare the same three-row grouping with its default error in M4. Do not type a replacement value into a result cell; change the anchor formula’s fill argument if a different padding policy is intended.
Flatten the layout in the intended order
Enter =TOCOL(D2:F4;0;TRUE) in O2 and =TOCOL(D2:F4;0;FALSE) in Q2. The TOCOL direction flag determines how the rectangle is read:
| Result row | O: column scan | Q: row scan |
|---|---|---|
| 2 | N1 | N1 |
| 3 | N2 | S1 |
| 4 | N3 | W1 |
| 5 | S1 | N2 |
| 6 | S2 | S2 |
| 7 | S3 | W2 |
| 8 | W1 | N3 |
| 9 | W2 | S3 |
| 10 | - | - |
Only the column scan reproduces the original eight-label order before the extra padding. The two outputs contain the same labels but assign them to different positions.
Copy LabelColumns as RevisedLabel and change only A7 from S3 to S3-revised. E4, I3, L4, O7 and Q9 become S3-revised; other positions stay unchanged. This identifies exactly how an input index maps into each layout.
Advanced: two fields per record require a complete sequence
Create RecordColumns, reserving A1:M10. Enter the following six values down A2:A7, keeping product IDs as text and quantities as numbers: P1,10,P2,20,P3,30.
Put =WRAPCOLS(A2:A7;2;"Missing") in D2 and =WRAPROWS(A2:A7;2;"Missing") in H2. The expected D2:F3 layout is:
| Row | D | E | F |
|---|---|---|---|
| 2 | P1 | P2 | P3 |
| 3 | 10 | 20 | 30 |
H2:I4 instead contains P1,10 / P2,20 / P3,30. Both layouts preserve complete pairs, but orient each record differently. L2 =D3+E3+F3 and L3 =SUM(I2:I4) both give 60.
Create a separate IncompleteSequence, reserving A1:G9. Put P1,10,P2,P3,30 in A2:A6: the quantity for P2 has been omitted, so there are only five inputs. Enter =WRAPCOLS(A2:A6;2;"Missing") in D2.
D2:F3 now contains P1,P2,30 / 10,P3,Missing. Padding exposes one incomplete final group, but it does not repair the earlier shift. P3 has already landed where a quantity was expected. Do not add a numerical total to that malformed example as though all three bottom cells were valid quantities.
The function reshapes a sequence; it does not understand record boundaries. Validate each record’s fields before removing blanks or combining lists.
Compare group totals with position totals
Create Measurements, reserving A1:M10. Enter 2,4,8,3,9,12 in A2:A7. Use D2 =WRAPCOLS(A2:A7;3) for D2:E4 = 2,3 / 4,9 / 8,12.
Put =SUM(D2:D4) in G2 for 14, =SUM(E2:E4) in G3 for 24, and =SUM(D2:E4) in G4 for 38. Put =SUM(D2:E2) in I2 and fill through I4 for 5,13,20. Column totals describe the two three-value groups; row totals describe positions within those groups.
Copy Measurements as ChangedMeasurement and change only A4 from 8 to 80. D4 becomes 80, G2:G4 becomes 86,24,110, and I2:I4 becomes 5,13,92. The other values and group membership remain unchanged.
Boundaries and troubleshooting
Use a single row or column and positive whole wrap counts for these exercises. The checked entry does not settle zero or fractional counts, a count larger than the source length, two-dimensional input, real blanks, formula-empty strings or imported errors. Do not infer those outcomes from another spreadsheet program.
The fill argument supplies positions beyond the end of the source sequence. It is not a documented instruction to replace every empty-looking source cell. The default is described as #N/A, while the shared error table uses #N/A!; the exact localized display was not tested.
Check source order, anchor position, wrap count and the full empty output area before changing data. A layout can be mathematically correct while grouping the wrong records if the source sequence is incomplete. Keep the original vector alongside the reshaped result.