Именованные диапазоны в Excel

До сих пор на тренингах регулярно встречаю продвинутых пользователей, которые весьма поверхностно знакомы с именованными диапазонами в Microsoft Excel и не используют их в своей работе. А это печально, т.к. именованные диапазоны - это мощный механизм, позволяющий заметно упростить вычисления в Excel. Давайте быстро пробежимся по основам (что такое ИД, как их создать и какие они бывают) и затем рассмотрим 10 наиболее вкусных и полезных приёмов работы с ними в реальных задачах.

Основы

Именованный диапазон (ИД) - это, по сути, переменная в Excel, которая может хранить следующие данные:

  • ссылку на отдельную ячейку
  • ссылку на диапазон
  • константу (число, текст, дату)
  • формулу

Управлять ИД можно в специальном окне Диспетчера имён, открыв его на вкладке Формулы - Диспетчер имён (Formulas - Name manager) или с помощью сочетания клавиш Ctrl+F3

При создании ИД нужно ввести:

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

После этого можно использовать созданные имена:

  • в формулах и функциях
  • как источник данных для диаграмм и сводных таблиц;
  • загружать их в Power Query
  • в макросах

Использование имён в формулах

Это самое очевидное и основное назначение именованных диапазонов - их имена можно смело использовать в любых формулах и функциях:

Использование имён в формулах

Далее переходим к менее очевидным сценариям.

Навигация

Если вы на постоянной основе работаете с большой книгой, содержащей множество листов, то вам наверняка придётся часто прыгать между ними - от одной ключевой ячейки к другой, от исходных данных к итогам и т.д. Для ускорения можно использовать ИД: создать их для всех ключевых ячеек у вас в книге, а затем выбирать нужный ИД из выпадающего списка в строке формул - и тут же "телепортироваться" к требуемой ячейке на соответствующий лист:

Навигация по именованным диапазонам

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

Карта имён

Классический способ узнать где у вас на листе какой ИД, состоит в открытии Диспетчера имен с вкладки Формулы (Formulas - Name manager). Однако, есть и другой (весьма наглядный) способ - если уменьшить масштаб листа до 40% или менее, то Excel отобразит имена диапазонов прямо на экране:

Карта имен

Именованные константы

Именованный диапазон может ссылаться не только на ячейки листа, но и хранить любое фиксированное значение, т.е. быть именованной константой. Например, можно сделать что-то типа глобальной переменной - именованный диапазон с именем НДС, равный текущей ставке в 22%. После этого мы сможем использовать эту константу в любых формулах на любом листе текущей книги:

Именованная константа

Если в будущем НДС поменяется, то нам достаточно будет изменить ставку в значении этой именованной константы в Диспетчере имен, чтобы скорректировать все наши расчёты.

Массовое создание именованных диапазонов

В некоторых случаях именованные диапазоны можно создавать не поштучно, а сразу оптом. Например, можно выделить вот такую таблицу целиком (вместе с заголовками строк и столбцов) и выбрать на вкладке Формулы команду Создать из выделенного (Formulas - Create from selection)

В открывшемся окне мы увидим два флажка:

Присвоение имён оптом

  • флажок В строке выше (Top row) означает, что мы даём имена каждому столбцу в таблице и берём их при этом из верхней строки;
  • флажок В столбце слева (Left column) означает, что мы даём имена каждой строке и берём названия для каждой из них из первого столбца.

Таким образом, если оставить оба флажка включенными, мы получим сразу несколько именованных диапазонов - по одному для каждой строки и столбца в нашей таблице. Обратите также внимание, что Excel автоматически заменяет недопустимые символы и пробелы в именах диапазонов на подчёркивание, т.е. диапазон-строка B8:M8 для Нижнего Тагила получит имя Нижний_Тагил.

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

Ищем пересечение диапазонов

=ДВССЫЛ(ПОДСТАВИТЬ(P3;" ";"_")) ДВССЫЛ(R3)

или в английской версии:

=INDIRECT(SUBSTITUTE(P3," ","_")) INDIRECT(R3)

Здесь функция ПОДСТАВИТЬ (SUBSTITUTE) подменяет пробелы на подчёркивания, если они есть в исходных ячейках, а затем функция ДВССЫЛ (INDIRECT) делает так, чтобы Excel воспринимал эти значения как имя диапазона, а не как обычный текст.

Диапазоны-невидимки и их ошибки

Кроме явных именованных диапазонов, которые мы видим в Диспетчере имен, в книге Excel могут содержаться ещё и невидимые. Обычно это всевозможные технические и вспомогательные диапазоны, которые создают различные программы для своего внутреннего использования при выгрузке данных в Excel. Иногда этот невидимый "мусор" может доставлять вам массу проблем - например, при копировании листов или ячеек с такими невидимыми диапазонами могут возникать ошибки или миллион диалоговых окон с вопросом о конфликте имён, если они уже есть в вашей книге.

Чтобы проверить таких невидимок и, при необходимости, от них избавиться сначала их нужно сделать видимыми. Для этого потребуется простой макрос. Нажмите сочетание клавиш Alt+F11, чтобы открыть редактор Visual Basic или нажмите кнопку Visual Basic на вкладке Разработчик (Developer - Visual Basic). Вставьте новый пустой модуль через меню Insert - Module и скопируйте туда следующий код:

Sub MakeNamesVisible()
Dim n As Name

For Each n In ActiveWorkbook.Names
    n.Visible = True
Next n

End Sub

Механика его проста - мы проходим по внутренней экселевской коллекции Names, хранящей все именованные диапазоны в книге и делаем каждое имя видимым. Запустить созданный макрос можно с помощью сочетания клавиш Alt+F8 или кнопкой Макросы на вкладке Разработчик (Developer - Macros). После этого все скрытые именованные диапазоны станут видимыми и мы сможем с ними разобраться в окне Диспетчера имен.

Плавающие диапазоны

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

Например, можно выделить любую ячейку на листе (например, D5) и создать именованный диапазон ЯчейкаСверху со ссылкой на D4 (без знака "$" и без имени текущего листа до символа "!"):

Относительная ссылка на ячейку сверху

Полученное имя будет полностью относительным и всегда будет ссылаться на ячейку выше текущей на любом листе, где мы это имя используем. Например, можно применить его в строке итога, чтобы посчитать сумму по всем ячейкам в столбце независимо от его размера - начиная с начала и до ЯчейкиСверху:

Плавающий итог

Или создать именованный диапазон с именем Рейтинг, где взять оценку из ячейки слева и вывести её в виде соответствующего количества звёздочек (для их вставки можно использовать сочетание Win+точка, открывающее библиотеку эмодзи и спецсимволов):

Рейтинг звездами с помощью именованного диапазона

Для этого в имени достаточно будет прописать простую формулу с функцией ПОВТОР (REPT), повторяющей заданный символ N-раз.

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

Весьма полезным частным случаем именованного диапазона с формулами является динамический именованный диапазон, способный автоматически подстраиваться под размеры исходных данных и расширяться-сжиматься при изменении количества строк-столбцов в нашей таблице. Его можно реализовать как при помощи динамических "умных" таблиц, так и создав именованный диапазон с формулой, которая будет сама определять конец таблицы. Например, если наша таблица начинается с ячейки K1 и прирастает потом новыми столбцами и строками вправо и вниз, то формула для именованного диапазона (назовём его, допустим, Расходы) будет выглядеть следующим образом:

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

В английской версии это будет соответственно:

=$K$1:INDEX($K:$XFD,COUNTA($K:$K),COUNTA($K$1:$XFD$1))

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

Здесь функции СЧЁТЗ (COUNTA) подсчитывают количество ячеек в подписях по строчкам и столбцам, что даёт нам высоту и ширину таблицы, а затем функция ИНДЕКС (INDEX) ссылается на ячейку по этим координатам. Другой (чуть более продвинутый) вариант - это использовать для нахождения последней заполненной ячейки функцию ПОИСКПОЗ (MATCH) в режиме приблизительного поиска. Про него подробно можно почитать в отдельной статье.

Лямбда-функции в именах

Высшим пилотажем в использовании именованных диапазонов является, конечно, их применение для создания пользовательских лямбда-функций. LAMBDA - это новая функция Excel, появившаяся, начиная с 2019 года. Она играет роль "обёртки", давая нам возможность сконструировать собственную функцию с любой логикой прямо внутри именованного диапазона, а затем пользоваться ей как обычной встроенной функцией Microsoft Excel. Подробно об этом можно почитать вот тут, а здесь давайте ограничимся простым примером.

Предположим, что нам хотелось бы создать функцию, которая извлекала бы из любого исходного текста нужное нам N-ое по счёту слово. Для этого откроем Диспетчер имён на вкладке Формулы, создадим имя и введём в его поле Диапазон (Reference) следующую конструкцию:

Лямбда-функция в именованном диапазоне

=LAMBDA(текст;N;ИНДЕКС(ТЕКСТРАЗД(текст;" ");N))

В английской версии это будет:

=LAMBDA(текст,N,INDEX(TEXTSPLIT(текст," "),N))

Здесь:

  • первые два аргумента (текст и N) - это переменные, которые функция будет получать от пользователя;
  • функция ТЕКСТРАЗД (TEXTSPLIT) делит исходный текст по пробелу и превращает в массив отдельных слов;
  • функция ИНДЕКС (INDEX) извлекает из полученного массива N-й по счету элемент

После создания этой функцией можно пользоваться на любом листе текущей книги - как будто это встроенная функция Excel и была в нём всю жизнь:

Использование созданной лямбда-функции

Ссылки по теме



09.07.2026 16:45:42
Доброго!

Вопрос не совсем по данной теме (вопрос про применение PQ): имеется множество файлов в папке, но не все файлы содержат нужный лист. Как сделать так, чтобы обрабатывались только содержащие нужный лист файлы (иначе возникает ошибка и обработка останавливается)?
13.07.2026 11:54:21
Sorry, ступил. Ответ очевиден.
Наверх