Summary

If you need to dynamically increment a calculation, so that a value automatically increments each time the formula is copied to a new row or column, you can use the ROW() or COLUMN() functions in your formula.

In the example shown, the formula in cell D6 is:

=$B$6*(ROW()-5)

When this formula is copied down column D, it multiplies the value in B6 by a number that starts with 1 and increments by one at each step.

Generic formula

=calculation*ROW()

Explanation 

The ROW() function, when entered into a cell with no arguments with return the the row number of that cell. In this case, the first instance of the formula is in cell D6 so, ROW() returns 6 inside the formula in D6.

We want to start with 1, however, so we need to subtract 5, which yields 1.

As the formula is copied down column D, ROW() keeps returning the current row number, and we keep subtracting 5 to "normalize" the result back to a 1-based scale:

=$B$6*1 // D6
=$B$6*2 // D7
=$B$6*3 // D8
etc

If you are copying a formula across columns, you can use COLUMN() function the same way.

Note that you are free to use the result of COLUMN() or ROW() any way you like in the formula. Both functions return a number, so you can apply them in a formula them just like you would use any number.

Dave Bruns Profile Picture

AuthorMicrosoft Most Valuable Professional Award

Dave Bruns

Hi - I'm Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.