What are volatile functions in Google Sheets?

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.

When to use it

Use volatile functions sparingly for timestamps, random samples, and dynamic ranges that must react to layout changes when named ranges are impractical.

When to skip it

Avoid NOW in every row, RAND in published client models, and OFFSET on million-cell ranges when INDEX or TABLE references are stable.

How it works

  1. 1

    Volatile functions mark dependent cells for frequent recalculation by the engine.

  2. 2

    NOW and TODAY update on recalc cycles; store one timestamp cell if many formulas need current date.

  3. 3

    RAND reshuffles on recalc; paste values before sharing Monte Carlo outputs.

  4. 4

    OFFSET and INDIRECT build addresses at runtime, blocking some optimizations.

  5. 5

    Replace volatile patterns with static references or QUERY on bounded tables when possible.

  6. 6

    Profile slow sheets by temporarily removing volatile columns and measuring edit speed.

Examples in Google Sheets

Single TODAY header

One cell =TODAY() referenced by formulas instead of TODAY in each of five thousand rows.

Random draw

RAND in helper column for sample; copy > paste values before emailing results.

OFFSET rolling window

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.

Better Sheets resources

Common mistakes

  • NOW inside ARRAYFORMULA filling an entire column on a shared ops sheet.
  • RAND-driven pricing shown to customers who reopen the file and see new numbers.
  • INDIRECT built from user-editable text without validation, causing surprise recalc paths.
  • Assuming IMPORTRANGE volatility when the real issue is local NOW columns.
  • Using OFFSET instead of expanding named range when table size only grows downward.

Frequently asked questions

Which functions are volatile?
Common list includes NOW, TODAY, RAND, RANDBETWEEN, OFFSET, INDIRECT, and INFO per Google documentation.
Is VLOOKUP volatile?
No. VLOOKUP recalculates when its arguments change, not on every sheet recalc by volatility rules.
Volatile and recalculation speed?
Many volatile cells increase work on each edit. Reduce count for performance.
Freeze RAND results?
Copy range and Paste special > Values only after calculation.
Volatile in conditional formatting?
Custom formulas using NOW can refresh formatting timing; test performance on large ranges.
INDIRECT vs INDEX?
INDEX with fixed range is usually less volatile and more auditable than INDIRECT strings.
Volatile in Apps Script?
Script reads computed values after sheet recalc; volatility affects what value script sees when run.
Audit volatile cells?
Search for NOW RAND OFFSET INDIRECT with Find and review each usage context.

Related Tutorials

Watch how Volatile functions works

Browse more tutorials
Insert Random New Quotes in Your Google Sheets (Every Edit/Open)

Insert Random New Quotes in Your Google Sheets (Every Edit/Open)

Discover the Secret Formula to Insert a Quote Randomizer in Your Sheet! ...

Related glossary terms

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.