Google sheets как использовать диапазон, получаемый формулой, в формуле VLOOKUP

Рейтинг: 0Ответов: 1Опубликовано: 27.04.2023

Использую формулу VLOOKUP в google sheets. Вторым параметром в этой формуле выступает диапазон. Когда в эту формулу диапазон вводится путём "прямого" указания, то всё работает. Пример:

=VLOOKUP(2;$A$1:$B$13;2;false)

если же мы укажем ту же самую формулу путём указания диапазона с помощью формулы ADDRESS в виде:

=VLOOKUP(2;ADDRESS(1;1)&":"&ADDRESS(13;2);2;false)

то формула возвращает ошибку доступа значения. Значение находится за пределами диапазона.

В целом как в формуле VLOOKUP в качестве диапазона использовать значение получаемое формулой ADDRESS?

Ответы

▲ 0Принят

АДРЕС - текстовая функция (возвращает текст)

ADDRESS(1;1)&":"&ADDRESS(13;2) - не ссылка, а обычный текст. Его можно преобразовать в ссылку:

INDIRECT(ADDRESS(1;1)&":"&ADDRESS(13;2))

Но это плохой вариант - текстовые функции медленные. INDIRECT - тоже текстовая, да еще и летучая (пересчитывается при любом изменении на листе) и имеет несколько критичных ограничений. Да и создавать текстовое представление, потом преобразовывать его в ссылку...

Быстрый вариант с динамичным диапазоном:

=VLOOKUP(2;A1:INDEX(B:B;13);2;)

Летучесть этой формулы - только при открытии книги.

При необходимости начало диапазона (A1) тоже можно задать функцией INDEX