Stack quarters
=TOCOL(B2:E10) lists every cell from four quarter columns into one vertical series.
TOCOL converts a range into a single column. You can choose whether it reads down each column first or across rows first. It replaces manual paste-special transpose chains when reshaping blocks for UNIQUE or FILTER.
Use TOCOL to stack a matrix into one list, prep mail merge columns, or align multi-column selections for downstream formulas.
Skip TOCOL when you must preserve two-dimensional layout for charts. Keep the matrix or use HSTACK/VSTACK instead.
Pass the array to reshape as the first argument.
Set scan_by_column TRUE to read column by column, FALSE for row by row.
Allow spill space equal to rows times columns of the source.
Wrap with UNIQUE or FILTER for deduped or conditional lists.
Pair with TOROW when you need horizontal output instead.
Verify scan order matches your mental model on a 2x2 test block.
=TOCOL(B2:E10) lists every cell from four quarter columns into one vertical series.
=TOCOL(A1:C3, 1) reads each column top to bottom before moving right.
=UNIQUE(TOCOL(tags_matrix)) dedupes tags spread across a wide grid.
Build this without starting from a blank cell
Use a Better Sheets tool for TOCOL, then watch a walkthrough when you want the full pattern.
Watch how TOCOL works
Guides that explain TOCOL in more depth.
Did you know you can actually code in Google Sheets?
Read post →Hello, Better Sheet members and non-Better Sheet members! This tutorial is about every locale listed in Google Sheets. If you live in a country that is not well represented with blog posts or someone makes a blog post about a Google Sheets issue, they create a Google Sheet formula and then you copy and paste it into your sheet and it has the wrong delimiter. How do you resolve that? I'm going to show you how you can fix that and how you can know if there's a problem. Locales. What are the...
Read post →TOROW flattens a range into a single row spill. Like TOCOL but horizontal, it helps build header arrays, SPARKLINE source rows, and inputs for functions that expect one horizontal vector.
Read guide →HSTACK appends arrays horizontally so columns sit side by side in one spilled table. It replaces fragile copy-paste when combining QUERY outputs, IMPORTRANGE blocks, or calculated columns with matching row heights.
Read guide →VSTACK stacks arrays on top of each other into one taller table. Combine regional exports, monthly snapshots, or FILTER results with the same columns without manual paste below last row.
Read guide →FLATTEN converts a two-dimensional range into a single column, reading across rows then down. It is useful after SPLIT or when you need every value from a block in one list for UNIQUE, COUNTIF, or mail merge prep.
Read guide →Done reading about TOCOL?
Membership unlocks 636+ tutorials, unlimited generators, and every template. Practical lessons. Zero fluff.
Need this once
Jump to a free tool or a single tutorial for this topic.
Learning Sheets for real
Unlock the full library, generators, and templates with membership.