
Общая формула
=MIN(ROW(rng))+ROWS(rng)-1
Резюме
Чтобы получить номер последней строки в диапазоне, вы можете использовать формулу, основанную на функциях ROW, ROWS и MIN. В показанном примере формула в ячейке F5:
=MIN(ROW(data))+ROWS(data)-1
где «данные» - именованный диапазон B5: D10
Объяснение
При наличии ссылки на одну ячейку функция СТРОКА возвращает номер строки для этой ссылки. Однако, если задан диапазон с несколькими строками, функция ROW вернет массив, содержащий все номера строк для диапазона:
(5;6;7;8;9;10)
Чтобы получить только номер первой строки, мы используем функцию MIN следующим образом:
MIN(ROW(data))
который возвращает наименьшее число в массиве, 5.
Когда у нас есть первая строка, мы можем просто добавить общее количество строк в диапазоне, а затем вычесть 1, чтобы получить окончательный результат. Мы получаем общее количество строк в диапазоне с помощью функции ROWS, и окончательный результат определяется следующим образом:
=5+ROWS(data)-1 =5+6-1 =10
Индексная версия
Вместо MIN вы также можете использовать INDEX для получения номера последней строки:
=ROW(INDEX(data,1,1))+ROWS(data)-1
Возможно, это немного быстрее для больших диапазонов, поскольку INDEX возвращает только одну ячейку в ROW.
Простая версия
Когда формула возвращает результат в виде массива, Excel отобразит первый элемент в массиве, если формула введена в одну ячейку. Это означает, что на практике часто можно просто использовать упрощенную версию формулы:
=ROW(data)+ROWS(data)-1
Однако внутри формул может потребоваться убедиться, что вы имеете дело только с одним элементом, а не с массивом. В этом случае вы захотите использовать версию MIN или INDEX, указанную выше.