3

Мне нужна формула (не VBA), которая будет возвращать номер строки последней использованной ячейки на листе.

У меня есть данные как:

Не все столбцы имеют данные, и столбцы не заполнены одинаковым количеством строк.

Если бы я имел дело только с одним столбцом (скажем, столбец F), я бы использовал:

=SUMPRODUCT(MAX((ROW(Sheet1!F:F))*(Sheet1!F:F<>"")))

что дает 13, но данные охватывают много столбцов в Sheet1

Если бы я мог использовать VBA, а не формулу, я бы использовал что-то вроде:

Sub GetLastRow()
    Dim LastRow As Long, rng As Range
    Set rng = Sheets("Sheet1").Cells
    LastRow = rng.Find(what:="*", after:=rng(1), searchdirection:=xlPrevious).Row
    MsgBox LastRow
End Sub

Я думаю, что мне не хватает чего-то очень простого.

1 ответ1

2

Либо используйте ваш SUMPRODUCT:

=SUMPRODUCT(MAX((ROW(Sheet1!A:AP))*(Sheet1!A:AP<>"")))

или этот АГРЕГАТ:

=AGGREGATE(14,6,ROW(A:AP)/(A:AP<>""),1)

Если вы можете ограничить количество строк, это поможет ускорить формулы, поскольку они являются формулами типа массива.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .