Skip to content

Cell references & names

What is a relative reference in Excel? Definition and how it copies

Relative references are cell addresses written without dollar signs, so they shift by the same offset whenever the formula is copied or filled. A relative reference describes a direction from the cell holding the formula, not a fixed location on the sheet.

Last reviewed August 30, 2026 · 6 min read

This is the default state of every reference you type. It is why one formula written in row 2 can be dragged down five hundred rows and produce five hundred different, correct answers — and why the same drag quietly ruins a formula that was meant to keep pointing at one cell.

An offset, not an address

Microsoft states the default and the mechanism in the same breath: "By default, a cell reference is a relative reference, which means that the reference is relative to the location of the cell." Then the worked case — "If, for example, you refer to cell A2 from cell C2, you are actually referring to a cell that is two columns to the left (C minus A)—in the same row (2)."

So A2, typed in C2, is not really the address A2. It is the instruction two columns left, same row, and that instruction is what travels when the formula is copied. Exceljet says the same from the other end: a relative address "will change when copied to other location in a worksheet because it describes the 'offset' to another cell, rather than a fixed address." Paste that C2 formula into C7 and it resolves to A7; into E2 and it resolves to C2.

The R1C1 view

Excel has a second reference style that makes the offset literal. Microsoft describes it as a style "where both the rows and the columns on the worksheet are numbered", useful "for computing row and column positions in macros"; brackets mark the relative part, so R[-2]C is "a relative reference to the cell two rows up and in the same column". Switch it on for five minutes and a filled column shows the same text in every cell — the clearest demonstration that a fill produces one rule applied hundreds of times, not hundreds of formulas.

What moves a relative reference, and what does not

Action Effect on a relative reference
Fill down, fill right, or copy and paste Shifts by however far the copy travelled
Cut and paste the formula No shift — it arrives pointing at the same cells it left with
Insert or delete rows or columns Rewritten to follow the cells that moved; deleting the target gives #REF!

Copying is the case Microsoft spells out: "When you copy a formula that contains a relative cell reference, that reference in the formula will change" — =B4*C4 in D4 becomes =B5*C5 in D5. Inserting and deleting works the other way round, rewriting the reference so it keeps pointing at the same values; Excel is "smart enough to adjust the formula to reflect that change", as Ablebits puts it. Dollar signs buy no exemption there: absolute references are rewritten by an insert exactly as relative ones are.

The patterns that depend on it

Row-wise arithmetic. Exceljet's example is =C4*D4 in E4; filled down column E it becomes =C5*D5, then =C6*D6, one line item per row.

The previous row. A formula referring to the cell above is the whole of period-over-period reporting: =B3-B2 is the change since last month, =B3/B2-1 the growth rate, and filled down, each row compares itself with its own predecessor. The formula never really names row 2 — it says the row above me.

The running total. =SUM($B$2:B2) in C2, filled down: the start of the range is locked, the end is relative, so each copy extends the window by one row — $B$2:B3, then $B$2:B4. The relative half makes the window grow; the locked half stops it sliding. It is the idea behind mixed references, applied to a range rather than a cell.

Where relative references go wrong

The first failure mode is a reference that should have stayed put. A formula multiplies by a rate in B2, gets filled down, and the pointer walks to B3, B4, B5 — empty cells, which spreadsheets read as zero, so the column fills with numbers that are merely wrong rather than with an error anyone would notice. Lookup tables go the same way: =VLOOKUP(A2, D2:F50, 3, 0) filled down becomes D3:F51, then D4:F52, until the table has slid off the bottom of itself and the last rows return #N/A. Absolute references exist for exactly this, and named ranges solve it more durably still.

The second is subtler. The offset is baked in as you type, relative to wherever the cursor happens to be, so building the row-2 formula while standing in row 3 hands every copy an off-by-one that is invisible in the formula bar. The symptom is a column whose top cell reconciles and whose remaining cells are consistently one row stale.

How Formula Foundry handles this

Formula Foundry does not fill formulas across your sheet. There is no fill handle in the sidebar and no bulk write — the add-on composes one formula, puts it into the selected cell, and leaves the copying to the spreadsheet. What it changes is the review that should happen first: reading the one formula five hundred rows are about to inherit. The editor opens it on multiple lines, indented along its nesting, with functions, ranges, constants and named references each in their own colour and matching parentheses highlighted — so which references carry a dollar sign is something you see, not something you pick out of a 200-character line.

For a formula you did not write, the AI assistant explains it step by step in plain English and the visual builder renders its call tree as a form, every argument in its own named field; a lookup range that will slide when filled is easier to spot as a labelled field than as text between two commas. Neither can tell you whether the offsets are the ones you meant. Formula Foundry has no calculation engine for your workbook — it parses, formats, explains and translates, never evaluating the sheet — so a relative reference producing a plausible wrong number looks exactly like one producing the right answer.

What it does replace is the part that repeats. Global @@variables define a rate once in the sidebar and go into the formula as @@TaxRate, so there is no cell for a fill to walk away from; the snippet library stores a formula by name, so the running-total pattern with its anchor in the right place is inserted rather than rebuilt. The features overview shows the editor, the variables panel and the snippet library in the Google Sheets and Excel sidebar.

FAQ

Are references relative by default in Excel and Google Sheets?

Yes, in both. Microsoft states it directly — "by default, a cell reference is a relative reference" — and Sheets behaves identically, with the same dollar-sign syntax available to override it. F4 cycles a reference through the relative, absolute and mixed forms while you are entering a formula in either application; Google lists the Sheets shortcut as "Absolute/relative references (when entering a formula): F4", or Fn + F4 on a Mac.

Why did my formula give the wrong answer after I dragged it down?

Almost always because a reference that should have been locked travelled with the fill. The tell is that the first row is right and everything below it is wrong in a consistent direction: zeros, if the reference walked into empty cells, or #N/A on the last rows, if a lookup range slid past the end of its table. Check the last filled cell rather than the first, because that is where the drift is largest.

Share this article