TLDR;
A1
is a reference relative to the current cell. Copy-paste will update this reference.
$A$1
is a static reference to a specific cell. Copy-paste will not change this reference.
Relative and Absolute References in Google Sheets and Excel.
Spreadsheets do the heavy lifting for you, by defaulting cell references in formulas as a "relative" to the current cell.
To override this default behavior, Use a $
sign to keep the reference "static" when pasting the formula into other cells.
For example, if you are in cell A1
and the formula in that cell references B1
,
then if you copy-paste this formula into cell A2
, the formula actually pasted in the cell references B2
. This is generally what we want.
However, if you are in cell A1
and the formula in that cell now says $B$1
(it will still reference the cell B1
, as before), but
then if you copy-paste this formula into cell A2
, the formula actually pasted in the cell will still say ($B$1)
(and still reference the cell B1
).
You can also use "mixed" references, where only the column or row is static, and the other is a dynamic reference. For example $B1
or B$1
.
This link gives a good example and use case (creating multiplication tables) for mixed references, as well as static vs relative references, and warns to always use static references with vlookup
and arrays: Relative and Absolute References in Google Sheets and Excel.