Summary

To get the last row number in a range, you can use a formula based on the ROW, ROWS, and MIN functions. In the example shown, the formula in cell F5 is:

=MIN(ROW(data))+ROWS(data)-1

where "data" is the named range B5:D10

Generic formula

=MIN(ROW(rng))+ROWS(rng)-1

Explanation 

When given a single cell reference, the ROW function returns the row number for that reference. However, when given a range with multiple rows, the ROW function will return an array that contains all row numbers for the range:

{5;6;7;8;9;10}

To get only the first row number, we use the MIN function like this:

MIN(ROW(data))

which returns the lowest number in the array, 5.

Once we have the first row, we can just add the total rows in the range then subtract 1 to get a final result. We get total rows in the range with the ROWS function, and a final result is determined like this:

=5+ROWS(data)-1
=5+6-1
=10

Index version

Instead of MIN, you can also use INDEX to get the last row number:

=ROW(INDEX(data,1,1))+ROWS(data)-1

This is possibly a bit faster for large ranges, since INDEX returns just a single cell to ROW.

Simple version

When a formula returns an array result, Excel will display the first item in the array if the formula is entered in a single cell. This means that in practice, you can often just use a simplified version of the formula:

=ROW(data)+ROWS(data)-1

However, inside formulas, it may be necessary to make sure you are dealing with only one item, and not an array. In that case, you'll want to use the the MIN or INDEX version above.

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.