Динамический именованный диапазон



Диапазонам и ячейкам в Excel можно присваивать имена (Ctrl+F3 или поле "Имя слева от строки формул или вкладка "Формулы" на ленте).



Что если мы хотим создать имя, за которым будут скрываться все заполненные ячейки в столбце, начиная с A2, например?

То есть чтобы одним и тем же именем (например, Компании, как в примере) назывался диапазон динамического размера — в зависимости от числа заполненных ячеек в столбце.



Тут можно воспользоваться тем, что несколько функций Excel могут возвращать не значения, а ссылку на последнюю ячейку диапазона, когда они следуют за двоеточием после ссылки на первую ячейку:

=$A$2:функция(...)




Это функции ЕСЛИ / IF, ВЫБОР / CHOOSE, ЕСЛИМН / IFS, ДВССЫЛ / INDIRECT, СМЕЩ / OFFSET, ПЕРЕКЛЮЧ / SWITCH и ПРОСМОТРX / XLOOKUP.



Для нашей задачи можно использовать ИНДЕКС — будем с помощью нее получать адрес последней заполненной ячейки в столбце A. Чтобы узнать, какая строка последняя — посчитаем, сколько заполненных ячеек в столбце A с помощью СЧЁТЗ / COUNTA.



=СЧЁТЗ($A:$A)




Значение из последней заполненной ячейки можно получить так:

=ИНДЕКС($A:$A;СЧЁТЗ($A:$A))




Но мы засунем эту конструкцию после ссылки на первую ячейку диапазона, и она не будет возвращать значение из последней заполненной ячейки, а ссылку на нее:

=$A$2:ИНДЕКС($A:$A;СЧЁТЗ($A:$A))




Все это остается отправить в поле "Диапазон" вновь созданного имени.