Single TODAY header
One cell =TODAY() referenced by formulas instead of TODAY in each of five thousand rows.
Volatile functions recalculate whenever Sheets recalculates the sheet, not only when their direct arguments change. NOW, TODAY, RAND, RANDBETWEEN, OFFSET, and INDIRECT are common examples. Heavy use in large ARRAYFORMULA columns can make shared files feel sluggish and make results change on every edit.
Use volatile functions sparingly for timestamps, random samples, and dynamic ranges that must react to layout changes when named ranges are impractical.
Avoid NOW in every row, RAND in published client models, and OFFSET on million-cell ranges when INDEX or TABLE references are stable.
Volatile functions mark dependent cells for frequent recalculation by the engine.
NOW and TODAY update on recalc cycles; store one timestamp cell if many formulas need current date.
RAND reshuffles on recalc; paste values before sharing Monte Carlo outputs.
OFFSET and INDIRECT build addresses at runtime, blocking some optimizations.
Replace volatile patterns with static references or QUERY on bounded tables when possible.
Profile slow sheets by temporarily removing volatile columns and measuring edit speed.
One cell =TODAY() referenced by formulas instead of TODAY in each of five thousand rows.
RAND in helper column for sample; copy > paste values before emailing results.
Last 30 days OFFSET range replaced with FILTER on date column for clearer spill behavior.
Build this without starting from a blank cell
Use a Better Sheets tool for Volatile functions, then watch a walkthrough when you want the full pattern.
Watch how Volatile functions works
Recalculation is when Google Sheets recomputes formula results after something changes. Most functions update when their input cells change. Volatile functions like NOW, RAND, and OFFSET recalculate more often. Large workbooks may feel slow when thousands of formulas refresh at once.
Read guide →ARRAYFORMULA tells Google Sheets to treat a formula as an array operation so one expression fills many cells at once. It is common with IF, VLOOKUP, and math on full columns before dynamic arrays made many patterns automatic. It still matters for legacy sheets and explicit control.
Read guide →The onEdit trigger runs a script automatically when someone changes a cell in your spreadsheet. It is one of the simplest ways to make Sheets react to user input without clicking a custom menu. You define the function in Apps Script and bind it to the onEdit event for that file.
Read guide →An open range reference points at an entire row, column, or unbounded slice such as B:B or 2:2 instead of a fixed rectangle like B2:B500. Formulas with open ranges include every cell in that line, which is convenient for growing tables but expensive and risky when stray values live far below your data.
Read guide →Done reading about Volatile functions?
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.