How can you apply conditional formatting using a custom formula that contains a relative reference to an adjacent row or column in Google Sheets?

If you want to highlight a cell in Google Sheets using conditional formatting based on the condition of a nearby cell you can easily do so by using the **Custom Formula** feature along with the `INDIRECT()`

formula that contains a relative reference.

The `INDIRECT(cell_reference, is_A1_notation)`

formula in Google Sheets contains two parameters with the first parameter being a string representing the specific cell reference either as a named range (i.e. `salesTax`

), or an absolute reference known by the common A1 notation with column letter followed by the row number (i.e. `A1`

). The second parameter to the `INDIRECT`

formula `is_A1_notation`

is by default set to `TRUE`

, therefore, when using a relative reference this parameter needs to be set to `FALSE`

.

Here are some examples demonstrating each type of `INDIRECT()`

formula call in a spreadsheet (cell `B1`

is a named range cell labelled as `salesTax`

):

A | B | |
---|---|---|

1 | 100`=INDIRECT("salesTax")` | 100 |

2 | ABC`=INDIRECT("B2")` | ABC |

3 | A1B2`=INDIRECT("R1C2", FALSE)` | A1B2 |

`INDIRECT()`

formula to reference other cells.As you can see from the above spreadsheet snippet the `INDIRECT()`

formula is used in three distinct ways with the first showing how to use a named range `salesTax`

which references cell `B1`

, and the second showing an absolute reference using the A1 notation of `"B2"`

, and the third using relative referencing.

## What Is A Relative Reference?

A relative reference is the opposite of an absolute reference. An absolute reference is a reference specifically pointing to a range that is either named (i.e. `salesTax`

) or written in `A1`

notation. In contrast a relative reference cell is a reference to a range that is a specific number of rows or columns away from the active cell.

As demonstrated above in the spreadsheet snippet the last `INDIRECT()`

formula contained a reference using the letters `R`

and `C`

along with a number alongside each letter. Instead of knowing the name of the cell or the exact A1 notation you can obtain the value of the cell using a relative reference to the cell needed.

The instructions needed to get to the cell require you to know the *distance* from the active cell to the cell you want to reference. The distance must be measured in rows (up, as a positive number, or down, as a negative number) and columns (right, as a positive number, or left, as a negative number).

Therefore compared to the absolute cell references the **syntax** used with a relative reference must contain an annotation in **row distance** and **column distance**.

The way this is designated in Google Sheets is by using the `R`

label for **row distance** and the `C`

label for **column distance** with adjacent to each label a number in square brackets of the relative distance from the active cell.

For example, the relative reference of `R[2]C[2]`

(which has nothing to do with R2D2’s cousin) from the active cell `A1`

may indicate the cell to increase the row by 2 values and to increase the column by 2 values.

If you think this would reference `C3`

you would actually be **wrong**. *Why?*

One major detail about the relative reference syntax is that the active cell has the relative reference `R[1]C[1]`

. This could also be written as `R1C1`

or even `RC`

.

Therefore, when using the relative reference `R[2]C[2]`

in effect you are only increasing the row by one (not two!) and the column reference by one (not two!). The relative reference will point to cell `B2`

, **not** `C3`

.

If you wanted to reference a row **above** the active cell or to the **left** of the active cell then you can use a negative number in square brackets to obtain the value of cells above (where you need to reduce the row value) or to the left of the active cell (where you need to reduce the column value of the cell).

What happens when you use the relative reference `R[-1]C[-1]`

in cell `A1`

?

### #REF! Error When Using Relative Reference

If you get a `#REF!`

error when using a relative reference it could be due to two main factors:

You’re referencing a cell that cannot be found on the sheet. For example, if you’re in cell A1 and are referencing a row **above** the active cell, or referencing a column to the **left** of the active cell then because you are in the top and right-most cell there are no cells above and to the left.

Hence the `#REF!`

error.

Another common reason for the `#REF!`

error could be due to a **circular reference**. This could be the relative reference pointing to a cell which uses the active cell to help calculate its value, or you have entered into the relative reference any of the following values which indicate the active cell:

`R1C1`

`R[-1]C[-1]`

`RC1`

`R1C`

`RC`

`R[0]C[0]`

All of the above relative references mean the same **active cell**.

## Relative Cell Reference With Conditional Formatting

With the basics understood of what a relative reference looks like and how it behaves in Google Sheets, you can now use this syntax in your conditional formatting.

Knowing how a relative reference works in Google Sheets can help with a conditional formatting range where you might want to highlight an entire row or column based on a cell in the row triggering a condition.

For example, if you wanted to highlight an entire row based on whether a value in the row is greater or less than some other value you can use the relative reference with the INDIRECT formula.

First, select the entire sheet and then click on the **Format** main menu then click on **Conditional Formatting** option.

From here create a new conditional format and select *Custom formula is* for the condition.

In the custom formula field enter the formula:

=INDIRECT("RC2", FALSE) > 1000

This formula means that if the value in the second column across (to the right) is greater than the value of `1000`

then perform the formatting.

This would look something like this:

Notice for the highlighting to work the range must be over the whole sheet, in my case above `A1:Y1000`

. As the first header row is meeting the condition I would change the **Apply to range** cell to `A`

to have it ignore the first row.**2**:Y1000

However, as you can see the relative reference works in highlighting the entire row where the condition is met (i.e. where the monthly sales column is greater than 1000).

## Highlight If Formula Does Not Exist In Cell

Another very popular conditional formatting technique I use is to check if a formula exists within a cell. This formatting can be very useful when you have important formulas and users tend to insert rows of data without knowing they need to copy the formulas in adjacent rows above.

With the same example of monthly sales staff if I added a column labelled `Quarterly Sales`

that contained a simple formula of checking if the monthly sales value was present and if so to multiply that by 3, the formula would look something like this:

`=IF(LEN(B2),B2*3,)`

And I’ll copy this formula all the way to the end of the column. The sheet now looking like this:

To make sure a user of the spreadsheet doesn’t come in and insert a row of data and forget to apply the formula you can use the `ISFORMULA()`

formula on the active cell relative reference.

To add this type of conditional formatting to your spreadsheet simply highlight the range where a formula should exist and in the *Custom formula is* field enter the following formula:

`=NOT(ISFORMULA(INDIRECT("RC", FALSE)))`

This should look like the following in your conditional formatting area on your spreadsheet:

As you can see from the above screenshot the top cell is highlighted in red as it does not contain a formula, whereas the rest of the column is not as they all contain the quarterly sales projection formula.

Knowing that the header row will not contain a formula I can change the range from `C1:C1000`

to `C`

to remove the conditional format applying to the header row.**2**:C1000

## Summary

Conditional formatting can be a great way of being able to highlight and show the reader conditions being met, or something not being quite right. Knowing how to use relative referencing can help highlight an individual cell in a range, such as a cell not having a formula, or can be used to highlight an entire row.

Remember when using relative referencing in a conditional format to use the `INDIRECT("R[n]C[n]", FALSE)`

formula where `R[n]C[n]`

relates to the relative cell reference from the active cell.

If you’d like to see another conditional formatting example check this article where a custom formula based on a value in the first column is used to highlight the entire row.