In general, getting the last row of a given column in Excel is easily done with a User-Defined Function in VBA:
Function lastRow(wsName As String, Optional c
This one (without an array formula)
=LOOKUP(2,1/(NOT(ISBLANK(A:A))),ROW(A:A))
How does it work?
NOT(ISBLANK(A:A)) returns an array of True and False1/(NOT(ISBLANK(A:A))) then 1 divided by that array results in another array of 1 or #DIV/0! which is used as lookup_vector2 as lookup_value which cannot be found because the largest value in the lookup_array is 1, so lookup will match the last 1 in the array.result_vector we use ROW(A:A) to get the row number of the last used cellA:A to get the value instead of the row number).Try the following formula:
=SUMPRODUCT((MAX(IFERROR(((A:A)<>"");TRUE)*ROW(A:A))))
Remember that this formula needs to be entered with control+shift+enter.
(A:A) <> "" : checks for not empty cells and returns TRUE if not empty.
(IFERROR(((A:A)<>"");TRUE) : checks for not empty cells and returns TRUE if not empty, if an error is detected it returns also TRUE.
Rest of code works as before.
More info about the control+shift+enter combination can be found here: Guidelines and examples of array formulas