Your formulas aren't wrong.
They just run too often.
standbyChoose a file
awaiting upload
volatile—
single-thread—
mode—
The processing server is unreachable right now (maintenance or network). Uploads will fail; please try again later.
standbyChoose a file
Volatile functions such as OFFSET, INDIRECT and TODAY recalculate on every edit; a VLOOKUP over a whole table recalculates when any of its columns changes; IF(ISERROR(X),…,X) computes X twice.
Every rewrite passes three checks: the old formula evaluates to the cached value, old and new agree, and they still agree when inputs are swapped for blanks, zeros, negatives, text and other edge values. Anything unproven stays as is.
An equivalent XLOOKUP needs wildcard mode, which measured 4× slower, and the two differ when the lookup value is blank.