Column maxes
=BYCOL(B2:M, LAMBDA(c, MAX(c))) returns the highest value in each month column.
BYCOL mirrors BYROW but runs a LAMBDA on each column of a range. The result spills across one row with one value per column. Use it for column-wise stats, normalizing monthly blocks, or validating each survey question column.
Use BYCOL when you need per-column aggregates or checks on a matrix, such as max per month column in a grid.
Skip BYCOL for row-based records in a standard table. BYROW or simple SUM on rows fits better.
Select a range where each column is a series you want to process.
Write BYCOL(range, LAMBDA(col, ...)) returning one value per column.
Use TOROW on output if you need a vertical list instead of horizontal spill.
Combine with MAP when columns differ in length; BYCOL expects a rectangle.
Document which row is headers so you do not include labels in numeric cols.
Test LAMBDA on one column manually before wrapping in BYCOL.
=BYCOL(B2:M, LAMBDA(c, MAX(c))) returns the highest value in each month column.
=BYCOL(B2:F, LAMBDA(c, COUNTA(c))) counts entries per survey question column.
=BYCOL(B2:B, LAMBDA(c, (c-MIN(c))/(MAX(c)-MIN(c)))) min-max scales one column vector.
Build this without starting from a blank cell
Use a Better Sheets tool for BYCOL, then watch a walkthrough when you want the full pattern.
BYROW takes an array and a LAMBDA that receives one row at a time. It returns a column of results, one per row. It is the clean way to sum across columns, test row-wide rules, or format composite keys without ARRAYFORMULA hacks.
Read guide →MAP walks aligned arrays element by element and applies a LAMBDA to each position. Pass one array for unary transforms or several arrays for element-wise combinations. It is the modern replacement for many ARRAYFORMULA column operations.
Read guide →LAMBDA defines an anonymous function inside a formula. You name parameters, write the calculation, then pass arguments when you call it. Combined with MAP, BYROW, or a named LAMBDA in the Name manager, it replaces fragile copy-paste logic across big tables.
Read guide →REDUCE walks an array left to right, carrying an accumulator value updated by a LAMBDA on each step. It can implement custom aggregates, text joins with rules, or conditional running logic that SUM alone cannot express.
Read guide →Done reading about BYCOL?
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.