Excel именованные диапазоны
Excel именованные диапазоны
Мы привыкли ссылаться на ячейки и диапазоны по их адресам. Например, A5 или B2:D17 . Однако, не все знают, что диапазону можно присвоить символьное имя и использовать его в качестве полноценной замены привычных адресов в формулах. На первый взгляд это дополнительные манипуляции, которые не приносят очевидной пользы, но это не так. Мы с вами разберём, как минимум, 7 причин, почему стоит использовать именованные диапазоны.
Я считаю, что умение оперировать именованными диапазонами ( далее ИД ) и понимание, для чего они нужны, одни из ключевых навыков квалифицированного пользователя Excel.
Создаём ИД
Создать ИД можно двумя способами:
Быстрый способ . Выделяем необходимый диапазон или ячейку. Идём в поле адреса и вводим там имя создаваемого ИД.
Стандартный способ . Выделяем диапазон, а потом выбираем пункт меню Присвоить имя с ленты ФОРМУЛЫ . В диалоговом окне вводим желаемое имя, меняем или оставляем без изменений область действия, примечание, адрес диапазона.
7 причин полюбить именованные диапазоны
Причина первая
Сравните 2 формулы:
В каком случае у вас больше шансов интуитивно догадаться, что мы вычисляем? Ответ очевиден — во втором случае. Потому что вместо скучных и безликих координат диапазонов, вы видите идентификаторы, которые рождают у вас некоторые ассоциации: Товары — это наверняка таблица с информацией о товарах, PrdSelected — это, видимо, выбранный пользователем продукт, Продукт — какой-то справочник продуктов, а VAT_Rate — без сомнения ставка НДС.
ИД делают формулы более дружественными к пользователю, наглядными и интуитивно понятными!
У вас не рябит в глазах от букв, цифр и знаков доллара в адресах диапазонов.
Причина вторая
Предположим у вас на листе 500 формул ВПР (VLOOKUP), которые ссылаются на один и тот же диапазон ячеек, из которого вы извлекаете данные. В случае изменения координат этого диапазона, вы будете вынуждены исправить его координаты в пятистах формулах. Безусловно, это можно сделать при помощи инструмента Поиск с заменой , но факт остаётся фактом — так или иначе вам надо менять формулы в большом количестве ячеек. А теперь представьте, что вы ссылаетесь в формулах на ИД. При изменении координат ИД, вы ОДИН раз изменяете его координаты в Диспетчере имён . При этом нет необходимости исправлять какие бы то ни было формулы. Это реальная экономия вашего времени!
Отпадает необходимость править формулы в ячейках из-за изменения адресов диапазонов.
Причина третья
Объявив ИД, вы можете его легко вставить в формулу. Есть 3 возможности:
Вызвать диалоговое окно Вставка имени (горячая клавиша F3 );
Начав набор названия ИД с клавиатуры и завершив выбором из раскрывшегося списка объектов;
Воспользовавшись пунктом меню Использовать в формуле на ленте ФОРМУЛЫ .
Формулы вводятся быстрее, приятнее и у вас меньше шансов внести в формулу ошибку.
Причина четвёртая
Используя обычные адреса диапазонов вы всегда должны думать, какой тип адресации применить, чтобы формула не поползла при протягивании или, напротив, поползла в нужном направлении. Речь идёт об относительных и абсолютных ссылках. Адес диапазона, введеный как A1:B5 при распространении (копировании) формулы вниз в следующей ячейке превратится в A2:B6 , потом в A3:B7 и т.д. Поэтому при вводе вы должны использовать абсолютную ссылку вида $A$1:$B$5 , от которых особенно рябит в глазах. Ссылки в виде ИД лишены данного недостатка.
Нет проблем при протягивании формул.
Причина пятая
ИД позволяют реализовать динамические диапазоны, которые подстраиваются под фактические размеры вашей таблицы. Это очень удобно, когда вы добавляете к какому-либо справочнику новые строки или столбцы. Делается это при помощи формул СМЕЩ + СЧЁТЗ (OFFSET+COUNTA), так:
Товары!$A$1 — точка отсчёта. Берите верхний левый угол таблицы;
1 — смещение по строкам для верхнего левого угла ИД. Поскольку у нас таблица с заголовками, то данные начинаются на 1 строку ниже, относительно указанной точки отсчёта;
0 — смещение по столбцам для верхнего левого угла ИД. Его у нас нет.
СЧЁТЗ(Товары!$A:$A)-1 — эта функция подсчитывает количество непустых строк в указанном диапазоне ( $A:$A ), а единицу вычитаем за счёт пропущенной строки с заголовками столбцов. При расширении таблицы вниз колонка A должна обязательно заполняться данными, либо выберите другой столбец, для которого это условие будет выполняться;
СЧЁТЗ(Товары!$1:$1) — подсчёт количества непустых столбцов по тому же принципу (на основе строки 1:1 ).
Проконтролировать правильно ли вы написали формулу, можно зайдя в Диспетчер имён , выделив нужный ИД и встав курсором на формулу. При этом сам диапазон должен выделиться пунктирной линией.
Возможность задать динамические границы при определении ИД.
Причина шестая
ИД облегчают перенос формул на другие листы, в другие книги, либо перенос данных в другое место. Особенно удобно использовать ИД, когда вы ссылаетесь на другую книгу, потому что видеть в формулах длиннющие префиксы с путём к файлу книги, содержащий нужный диапазон, не составляет никакого удовольствия. Причём ИД в этом случае определять надо в той книге, в которой вы строите формулы, так как формула может использовать только ИД, определенный в родной книге. А сам ИД будет ссылаться на другую книгу.
Облегчение ссылок на другие книги, упрощение переноса формул на другие листы/книги.
Причина седьмая
В Excel 2007 и ранее нельзя было определить в Проверке данных (Data Validation) список (list), который бы ссылался на диапазон, располагающийся на другом листе. То есть вы не могли указать в качестве источника значений списка = Лист4!$A$2:$A$4 , а надо было обязательно определить ИД, и вот только так можно было сослаться на другой лист.
Ссылка на источник данных для списка в функции Проверка данных.
Управление ИД
Осуществляется при помощи данного блока меню на ленте ФОРМУЛЫ :
Получение списка всех ИД
Через диалог Вставка имени ( F3 или через меню Использовать в формуле — Вставить имена. ) можно получить в ячейки таблицы список всех ИД. Это выглядит так:
Замена обычных диапазонов на ИД
Если вы сначала написали формулы, а потом решили определить ИД, то обычные координаты диапазонов можно заменить на ИД через меню Присвоить имя , диалог Применить имена.
Массовое создание ИД
ИД можно создавать массово на основе ваших таблицы и заголовков столбцов/строк. Выделите необходимый диапазон данных и выберите пункт меню Создать из выделенного . Будет предложен такой диалог:
Укажите в нём, где располагаются имена ваших ИД. Если вы укажете, что имена расположены в верхней строке, то Excel создаст ИД для каждой строки и назовёт их теми идентификаторами, которые в верхней строке располагаются. В предложенном примере мы имеем 5 столбцов и после нажатия OK можно проконтролировать, что создано 5 ИД с соответствующими именами:
Тоже самое можно проделать и со строками, если на то есть необходимость.
Именованные константы
Помимо ссылок на ячейки в ИД можно указать ссылку на числовую константу. Например:
Именованную константу можно использовать в формулах наравне с другими числами, однако её имя будет вам напоминать о её назначении, а в случае необходимости вы всегда легко её сможете изменить без необходимости правки формул.
Многими возможнотями ИД (и даже больше) обладают также умные таблицы.
Создание именованного диапазона из выделенных ячеек на листе
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Вы можете быстро создать именованный диапазон, выполнив выделение ячеек на листе.
Примечание: Именованные диапазоны, которые создаются из выделения ячеек, имеют область действия уровня книги.
Выберите диапазон, которому вы хотите присвоить имя, включая заголовки строк и столбцов.
Щелкните формулы > создать из выделенного фрагмента.
В диалоговом окне Создание имен из выделенного фрагмента установите флажок (ES) в зависимости от расположения заголовка строки или столбца. Если в верхней части таблицы есть только строка заголовков, просто выберите элемент верхняя строка. Предположим, что у вас есть верхний и левый заголовки столбцов, а затем выберите пункт верхние строки, параметры столбцов слева и т. д.
Нажмите кнопку ОК.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Именованный диапазон в MS EXCEL
Обычно ссылки на диапазоны ячеек вводятся непосредственно в формулы, например =СУММ(А1:А10) . Другим подходом является использование в качестве ссылки имени диапазона. В статье рассмотрим какие преимущества дает использование имени.
Назовем Именованным диапазоном в MS EXCEL, диапазон ячеек, которому присвоено Имя (советуем перед прочтением этой статьи ознакомиться с правилами создания Имен).
Преимуществом именованного диапазона является его информативность. Сравним две записи одной формулы для суммирования, например, объемов продаж: =СУММ($B$2:$B$10) и =СУММ(Продажи) . Хотя формулы вернут один и тот же результат (если, конечно, диапазону B2:B10 присвоено имя Продажи), но иногда проще работать не напрямую с диапазонами, а с их именами.
Совет: Узнать на какой диапазон ячеек ссылается Имя можно через Диспетчер имен расположенный в меню Формулы/ Определенные имена/ Диспетчер имен .
Ниже рассмотрим как присваивать имя диапазонам. Оказывается, что диапазону ячеек можно присвоить имя по разному: используя абсолютную или смешанную адресацию.
Задача1 (Именованный диапазон с абсолютной адресацией)
Пусть необходимо найти объем продаж товаров (см. файл примера лист 1сезон):
Присвоим Имя Продажи диапазону B2:B10. При создании имени будем использовать абсолютную адресацию.
- выделите, диапазон B2:B10на листе1сезон;
- на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя;
- в поле Имя введите: Продажи;
- в поле Область выберите лист 1сезон(имя будет работать только на этом листе) или оставьте значение Книга, чтобы имя было доступно на любом листе книги;
- убедитесь, что в поле Диапазон введена формула =’1сезон’!$B$2:$B$10
- нажмите ОК.
Теперь в любой ячейке листа 1сезон можно написать формулу в простом и наглядном виде: =СУММ(Продажи) . Будет выведена сумма значений из диапазона B2:B10.
Также можно, например, подсчитать среднее значение продаж, записав =СРЗНАЧ(Продажи) .
Обратите внимание, что EXCEL при создании имени использовал абсолютную адресацию $B$1:$B$10 . Абсолютная ссылка жестко фиксирует диапазон суммирования: в какой ячейке на листе Вы бы не написали формулу =СУММ(Продажи) – суммирование будет производиться по одному и тому же диапазону B1:B10.
Иногда выгодно использовать не абсолютную, а относительную ссылку, об этом ниже.
Задача2 (Именованный диапазон с относительной адресацией)
Теперь найдем сумму продаж товаров в четырех сезонах. Данные о продажах находятся на листе 4сезона (см. файл примера ) в диапазонах: B2:B10, C2:C10, D2:D10, E2:E10. Формулы поместим соответственно в ячейках B11, C11, D11, E11.
По аналогии с абсолютной адресацией из предыдущей задачи, можно, конечно, создать 4 именованных диапазона с абсолютной адресацией, но есть решение лучше. С использованием относительной адресации можно ограничиться созданием только одного Именованного диапазона Сезонные_продажи.
- выделите ячейку B11, в которой будет находится формула суммирования (при использовании относительной адресации важно четко фиксировать нахождение активной ячейки в момент создания имени);
- на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя;
- в поле Имя введите: Сезонные_Продажи;
- в поле Область выберите лист 4сезона(имя будет работать только на этом листе);
- убедитесь, что в поле Диапазон введена формула =’4сезона’!B$2:B$10
- нажмите ОК.
Мы использовали смешанную адресацию B$2:B$10 (без знака $ перед названием столбца). Такая адресация позволяет суммировать значения находящиеся в строках 2, 3,…10, в том столбце, в котором размещена формула суммирования. Формулу суммирования можно разместить в любой строке ниже десятой (иначе возникнет циклическая ссылка).
Теперь введем формулу =СУММ(Сезонные_Продажи) в ячейку B11. Затем, с помощью Маркера заполнения, скопируем ее в ячейки С11, D11, E11, и получим суммы продаж в каждом из 4-х сезонов. Формула в ячейках B11, С11, D11 и E11 одна и та же!
СОВЕТ:
Если выделить ячейку, содержащую формулу с именем диапазона, и нажать клавишу F2, то соответствующие ячейки будут обведены синей рамкой (визуальное отображение Именованного диапазона).
Использование именованных диапазонов в сложных формулах
Предположим, что имеется сложная (длинная) формула, в которой несколько раз используется ссылка на один и тот же диапазон:
Если нам потребуется изменить ссылку на диапазон данных, то это придется сделать 3 раза. Например, ссылку E2:E8 поменять на J14:J20.
Но, если перед составлением сложной формулы мы присвоим диапазону E2:E8 какое-нибудь имя (например, Цены), то ссылку на диапазон придется менять только 1 раз и даже не в формуле, а в Диспетчере имен!
Более того, при создании формул EXCEL будет сам подсказывать имя диапазона! Для этого достаточно ввести первую букву его имени.
Excel добавит к именам формул, начинающихся на эту букву, еще и имя диапазона!
Именованные диапазоны
Для чего вообще нужны именованные диапазоны? Обращение к именованному диапазону гораздо удобнее, чем прописывание адреса в формулах и VBA:
- Предположим, что в формуле мы ссылаемся на диапазон A1:C10 (возможно даже не один раз). Для примера возьмем простую функцию СУММ(суммирует значения указанных ячеек):
=СУММ( A1:C10 ; F1:K10 )
Затем нам стало необходимо суммировать другие данные(скажем вместо диапазона A1:C10 в диапазоне D2:F11 ). В случае с обычным указанием диапазона нам придется искать все свои формулы и менять там адрес диапазона на новый. Но если назначить своему диапазону A1:C10 имя(к примеру ДиапазонСумм ), то в формуле ничего менять не придется — достаточно будет просто изменить ссылку на ячейки в самом имени один раз. Я привел пример с одной формулой — а что, если таких формул 10? 30?
Примерно такая же ситуация и с использованием в кодах: указав имя диапазона один раз не придется каждый раз при изменении и перемещении этого диапазона прописывать его заново в коде. - Именованный диапазон не просто так называется именованным. Если взять пример выше — то отображение в формуле названия ДиапазонСумм куда нагляднее, чем A1:C10 . В сложных формулах куда проще будет ориентироваться по именам, чем по адресам. Почему удобнее: если сменить стиль отображения ссылок (подробнее про стиль), то диапазон A1:C10 будет выглядеть как-то вроде этого: R1C1:R10C3 . А если назначить имя — то оно как было ДиапазонСумм , так им и останется.
- При вводе формулы/функции в ячейку, можно не искать нужный диапазон, а начать вводить лишь первые буквы его имени и Excel предложит его ко вводу:
Данный метод доступен лишь в версиях Excel 2007 и выше
Как обратиться к именованному диапазону
Обращение к именованному диапазону из VBA
MsgBox Range(«ДиапазонСумм»).Address MsgBox [ДиапазонСумм].Address
Обращение к именованному диапазону в формулах/функциях
Если при указании диапазона в формуле выделить именованный диапазон, то его имя автоматически подставится в формулу вместо фактического адреса ячеек:
Ограничения, накладываемые на создание имен
- В качестве имени диапазона не могут быть использованы словосочетания, содержащие пробел. Вместо него лучше использовать нижнее подчеркивание _ или точку: Name_1, Name.1
- Первым символом имени должна быть буква, знак подчеркивания (_) или обратная косая черта (). Остальные символы имени могут быть буквами, цифрами, точками и знаками подчеркивания
- Нельзя в качестве имени использовать зарезервированные в Excel константы — R, C и RC(как прописные, так и строчные). Связано с тем, что данные буквы используются самим Excel для адресации ячеек при использовании стиля ссылок R1C1 (читать подробнее про стили ссылок)
- Нельзя давать именам названия, совпадающие с адресацией ячеек: B$100, D2(для стиля ссылок А1) или R1C1, R7(для стиля R1C1). И хотя при включенном стиле ссылок R1C1 допускается дать имени название вроде A1 или D130 — это не рекомендуется делать, т.к. если впоследствии стиль отображения ссылок для книги будет изменен — то Excel не примет такие имена и предложит их изменить. И придется изменять названия всех подобных имен. Если очень хочется — можно просто добавить нижнее подчеркивание к имени: _A1
- Длина имени не может превышать 255 символов
Создание именованного диапазона
Способ первый
обычно при создании простого именованного диапазона я использую именно его. Выделяем ячейку или группу ячеек, имя которым хотим присвоить -щелкаем левой кнопкой мыши в окне адреса и вписываем имя, которое хотим присвоить. Жмем Enter:
Способ второй
Выделяем ячейку или группу ячеек. Жмем правую кнопку мыши для вызова контекстного меню ячеек. Выбираем пункт:
- Excel 2007: Имя диапазона (Range Name)
- Excel 2010: Присвоить имя (Define Name)
либо:
Жмем Ctrl + F3
либо:
- 2007-2016 Excel : вкладка Формулы (Formulas) —Диспетчер имен (Name Manager) —Создать (New) (либо на той же вкладке сразу — Присвоить имя (Define Name) )
- 2003 Excel : Вставка —Имя —Присвоить
Появляется окно создания имени
Имя (Name) — указывается имя диапазона. Необходимо учитывать ограничения для имен, которые я описывал в начале статьи.
Область (Scope) — указывается область действия создаваемого диапазона — Книга , либо Лист1 :
- Лист1 (Sheet1) — созданный именованный диапазон будет доступен только из указанного листа. Это позволяет указать разные диапазоны для разных листов, но указав одно и тоже имя диапазона
- Книга (Workbook) — созданный диапазон можно будет использовать из любого листа данной книги
Примечание (Comment) — здесь можно записать пометку о созданном диапазоне, например для каких целей планируется его использовать. Позже эту информацию можно будет увидеть из диспетчера имен ( Ctrl + F3 )
Диапазон (Refers to) — при данном способе создания в этом поле автоматически проставляется адрес выделенного ранее диапазона. Его можно при необходимости тут же изменить.
Изменение диапазона
Чтобы изменить имя Именованного диапазона, либо ссылку на него необходимо всего лишь вызывать диспетчер имен( Ctrl + F3 ), выбрать нужное имя и нажать кнопку Изменить (Edit. ) .
Изменить можно имя диапазона (Name) , ссылку (RefersTo) и Примечание (Comment) . Область действия (Scope) изменить нельзя, для этого придется удалить текущее имя и создать новое, с новой областью действия.
Удаление диапазона
Чтобы удалить Именованный диапазон необходимо вызывать диспетчер имен( Ctrl + F3 ), выбрать нужное имя и нажать кнопку Удалить (Delete. ) .
Так же можно создавать списки с автоматическим определением его размера. Например, если значения в списке периодически пополняются или удаляются и чтобы каждый раз не переопределять границы таких диапазонов. Такие диапазоны называют динамическими.
Статья помогла? Поделись ссылкой с друзьями!
Динамический диапазон с автоподстройкой размеров
Есть ли у вас таблицы с данными в Excel, размеры которых могут изменяться, т.е. количество строк (столбцов) может увеличиваться или уменьшаться в процессе работы? Если размеры таблицы «плавают», то придется постоянно мониторить этот момент и подправлять:
- ссылки в формулах отчетов, которые ссылаются на нашу таблицу
- исходные диапазоны сводных таблиц, которые построены по нашей таблице
- исходные диапазоны диаграмм, построенных по нашей таблице
- диапазоны для выпадающих списков, которые используют нашу таблицу в качестве источника данных
Все это в сумме не даст вам скучать 😉
Гораздо удобнее и правильнее будет создать динамический «резиновый» диапазон, который автоматически будет подстраиваться в размерах под реальное количество строк-столбцов данных. Чтобы реализовать такое, есть несколько способов.
Способ 1. Умная таблица
Выделите ваш диапазон ячеек и выберите на вкладке Главная – Форматировать как Таблицу (Home – Format as Table):
Если вам не нужен полосатый дизайн, который добавляется к таблице побочным эффектом, то его можно отключить на появившейся вкладке Конструктор (Design). Каждая созданная таким образом таблица получает имя, которое можно заменить на более удобное там же на вкладке Конструктор (Design) в поле Имя таблицы (Table Name) .
Теперь можно использовать динамические ссылки на нашу «умную таблицу»:
- Таблица1 – ссылка на всю таблицу кроме строки заголовка (A2:D5)
- Таблица1[#Все] – ссылка на всю таблицу целиком (A1:D5)
- Таблица1[Питер] – ссылка на диапазон-столбец без первой ячейки-заголовка (C2:C5)
- Таблица1[#Заголовки] – ссылка на «шапку» с названиями столбцов (A1:D1)
Такие ссылки замечательно работают в формулах, например:
=СУММ(Таблица1[Москва]) – вычисление суммы по столбцу «Москва»
=ВПР(F5;Таблица1;3;0) – поиск в таблице месяца из ячейки F5 и выдача питерской суммы по нему (что такое ВПР?)
Такие ссылки можно успешно использовать при создании сводных таблиц, выбрав на вкладке Вставка – Сводная таблица (Insert – Pivot Table) и введя имя умной таблицы в качестве источника данных:
Если выделить фрагмент такой таблицы (например, первых два столбца) и создать диаграмму любого типа, то при дописывании новых строк они автоматически будут добавляться к диаграмме.
При создании выпадающих списков прямые ссылки на элементы умной таблицы использовать нельзя, но можно легко обойти это ограничение с помощью тактической хитрости – использовать функцию ДВССЫЛ (INDIRECT) , которая превращает текст в ссылку:
Т.е. ссылка на умную таблицу в виде текстовой строки (в кавычках!) превращается в полноценную ссылку, а уж ее выпадающий список нормально воспринимает.
Способ 2. Динамический именованный диапазон
Если превращение ваших данных в умную таблицу по каким-либо причинам нежелательно, то можно воспользоваться чуть более сложным, но гораздо более незаметным и универсальным методом – создать в Excel динамический именованный диапазон, ссылающийся на нашу таблицу. Потом, как и в случае с умной таблицей, можно будет свободно использовать имя созданного диапазона в любых формулах, отчетах, диаграммах и т.д. Для начала рассмотрим простой пример:
Задача: сделать динамический именованный диапазон, который ссылался бы на список городов и автоматически растягивался-сжимался в размерах при дописывании новых городов либо их удалении.
Нам потребуются две встроенных функции Excel, имеющиеся в любой версии – ПОИКСПОЗ (MATCH) для определения последней ячейки диапазона и ИНДЕКС (INDEX) для создания динамической ссылки.
Ищем последнюю ячейку с помощью ПОИСКПОЗ
ПОИСКПОЗ(искомое_значение;диапазон;тип_сопоставления) – функция, которая ищет заданное значение в диапазоне (строке или столбце) и выдает порядковый номер ячейки, где оно было найдено. Например, формула ПОИСКПОЗ(“март”;A1:A5;0) выдаст в качестве результата число 4, т.к. слово «март» расположено в четвертой по счету ячейке в столбце A1:A5. Последний аргумент функции Тип_сопоставления = 0 означает, что мы ведем поиск точного соответствия. Если этот аргумент не указать, то функция переключится в режим поиска ближайшего наименьшего значения – это как раз и можно успешно использовать для нахождения последней занятой ячейки в нашем массиве.
Суть трюка проста. ПОИСКПОЗ перебирает в поиске ячейки в диапазоне сверху-вниз и, по идее, должна остановиться, когда найдет ближайшее наименьшее значение к заданному. Если указать в качестве искомого значение заведомо больше, чем любое имеющееся в таблице, то ПОИСКПОЗ дойдет до самого конца таблицы, ничего не найдет и выдаст порядковый номер последней заполненной ячейки. А нам это и нужно!
Если в нашем массиве только числа, то можно в качестве искомого значения указать число, которое заведомо больше любого из имеющихся в таблице:
Для гарантии можно использовать число 9E+307 (9 умножить на 10 в 307 степени, т.е. 9 с 307 нулями) – максимальное число, с которым в принципе может работать Excel.
Если же в нашем столбце текстовые значения, то в качестве эквивалента максимально большого числа можно вставить конструкцию ПОВТОР(“я”;255) – текстовую строку, состоящую из 255 букв «я» — последней буквы алфавита. Поскольку при поиске Excel, фактически, сравнивает коды символов, то любой текст в нашей таблице будет технически «меньше» такой длинной «яяяяя….я» строки:
Формируем ссылку с помощью ИНДЕКС
Теперь, когда мы знаем позицию последнего непустого элемента в таблице, осталось сформировать ссылку на весь наш диапазон. Для этого используем функцию:
ИНДЕКС(диапазон; номер_строки; номер_столбца)
Она выдает содержимое ячейки из диапазона по номеру строки и столбца, т.е. например функция =ИНДЕКС(A1:D5;3;4) по нашей таблице с городами и месяцами из предыдущего способа выдаст 1240 – содержимое из 3-й строки и 4-го столбца, т.е. ячейки D3. Если столбец всего один, то его номер можно не указывать, т.е. формула ИНДЕКС(A2:A6;3) выдаст «Самару» на последнем скриншоте.
Причем есть один не совсем очевидный нюанс: если ИНДЕКС не просто введена в ячейку после знака =, как обычно, а используется как финальная часть ссылки на диапазон после двоеточия, то выдает она уже не содержимое ячейки, а ее адрес! Таким образом формула вида $A$2:ИНДЕКС($A$2:$A$100;3) даст на выходе уже ссылку на диапазон A2:A4.
И вот тут в дело вступает функция ПОИСКПОЗ, которую мы вставляем внутрь ИНДЕКС, чтобы динамически определить конец списка:
=$A$2:ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(ПОВТОР(«я»;255) ;A2:A100))
Создаем именованный диапазон
Осталось упаковать все это в единое целое. Откройте вкладку Формулы (Formulas) и нажмите кнопку Диспетчер Имен (Name Manager) . В открывшемся окне нажмите кнопку Создать (New) , введите имя нашего диапазона и формулу в поле Диапазон (Reference) :
Осталось нажать на ОК и готовый диапазон можно использовать в любых формулах, выпадающих списках или диаграммах.