Here is the formula: {=MAX(NOT(ISBLANK($A$1:$A$65536))*ROW($A$1:$A$65536))}

This is an

*array formula*, meaning, it will iterate over a range automatically and evaluate the formula for each cell in the range. (NOTE: Don't forget to press CTRL-SHIFT-ENTER to save it after you are done editing the cell, otherwise it won't be saved as an array formula!)

**How does it work?**

- The array formula starts at cell A1 and works its way down to cell A65536. Along the way it performs ISBLANK() on each cell it encounters. ISBLANK() evaluates to
*true*for each blank (empty) cell. - Surrounding that, we have a NOT() function, which reverses the result from ISBLANK giving us
*false*for blank cells and*true*for non-blank cells. We now have a list of which cells are blank and which are non-blank. - We then multiply that result by the ROW() number of each cell in the range, which is the same row number you see down the left side of the spreadsheet. Since
*false*is equivalent to zero and*true*is equivalent to one, this has the effect of multiplying the row number for each blank cell by zero and each non-blank cell by one. We now have a value of zero for each blank cell, and the value of the row number for each non-blank cell. - Finally, we take the MAX() of the list, which gives us the largest number in the list. The largest number will be the last row used in the sheet.