A small number of Excel functions are "volatile". Volatile functions trigger recalculation on every worksheet change, so they can have a drastic impact on worksheet performance. In workbooks that contain a small amount of data, the performance impact may not be noticeable. However, in workbooks with large data sets and lots of formulas, adding a volatile function can make the worksheet feel sluggish. In extreme cases, this can make a spreadsheet almost unusable. From official Microsoft documentation:
Excel supports the concept of a volatile function, that is, one whose value cannot be assumed to be the same from one moment to the next even if none of its arguments (if it takes any) has changed. Excel reevaluates cells that contain volatile functions, together with all dependents, every time that it recalculates. For this reason, too much reliance on volatile functions can make recalculation times slow. Use them sparingly.
Volatile function list
The following functions are considered volatile:
- NOW
- TODAY
- RAND
- RANDARRAY
- RANDBETWEEN
- OFFSET
- INDIRECT
- CELL (depends on arguments)
- INFO (depends on arguments)
Formulas that generate random results with volatile functions
A number of formulas on this site explain how to generate random results (random sorts, random names, etc.). Typically, such formulas use volatile functions like RAND, RANDARRAY, and RANDBETWEEN. As a consequence, they will recalculate every time a worksheet is changed, which is often undesired behavior. One workaround is to replace the volatile functions with the seeded random number generator explained in this article: Seeded Random Number Generator in Excel.






