Динамическое значение ячейки excel

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

Есть ли у вас таблицы с данными в Excel, размеры которых могут изменяться, т.е. количество строк (столбцов) может увеличиваться или уменьшаться в процессе работы? Если размеры таблицы «плавают», то придется постоянно мониторить этот момент и подправлять:

  • ссылки в формулах отчетов, которые ссылаются на нашу таблицу
  • исходные диапазоны сводных таблиц, которые построены по нашей таблице
  • исходные диапазоны диаграмм, построенных по нашей таблице
  • диапазоны для выпадающих списков, которые используют нашу таблицу в качестве источника данных

Все это в сумме не даст вам скучать ;)

Гораздо удобнее и правильнее будет создать динамический «резиновый» диапазон, который автоматически будет подстраиваться в размерах под реальное количество строк-столбцов данных. Чтобы реализовать такое, есть несколько способов.

Способ 1. Умная таблица

Выделите ваш диапазон ячеек и выберите на вкладке Главная – Форматировать как Таблицу (Home – Format as Table):

dynamic_range1.png

Если вам не нужен полосатый дизайн, который добавляется к таблице побочным эффектом, то его можно отключить на появившейся вкладке Конструктор (Design). Каждая созданная таким образом таблица получает имя, которое можно заменить на более удобное там же на вкладке Конструктор (Design) в поле Имя таблицы (Table Name).

dynamic_range3.png

Теперь можно использовать динамические ссылки на нашу «умную таблицу»:

  • Таблица1 – ссылка на всю таблицу кроме строки заголовка (A2:D5)
  • Таблица1[#Все] – ссылка на всю таблицу целиком (A1:D5)
  • Таблица1[Питер] – ссылка на диапазон-столбец без первой ячейки-заголовка (C2:C5)
  • Таблица1[#Заголовки] – ссылка на «шапку» с названиями столбцов (A1:D1)

Такие ссылки замечательно работают в формулах, например:

=СУММ(Таблица1[Москва]) – вычисление суммы по столбцу «Москва»

или

=ВПР(F5;Таблица1;3;0) – поиск в таблице месяца из ячейки F5 и выдача питерской суммы по нему (что такое ВПР?)

Такие ссылки можно успешно использовать при создании сводных таблиц, выбрав на вкладке Вставка – Сводная таблица (Insert – Pivot Table) и введя имя умной таблицы в качестве источника данных:

dynamic_range4.png

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

При создании выпадающих списков прямые ссылки на элементы умной таблицы использовать нельзя, но можно легко обойти это ограничение с помощью тактической хитрости – использовать функцию ДВССЫЛ (INDIRECT), которая превращает текст в ссылку:

dynamic_range5.png

Т.е. ссылка на умную таблицу в виде текстовой строки (в кавычках!) превращается в полноценную ссылку, а уж ее выпадающий список нормально воспринимает.

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

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

dynamic_range6.png

Задача: сделать динамический именованный диапазон, который ссылался бы на список городов и автоматически растягивался-сжимался в размерах при дописывании новых городов либо их удалении.

Нам потребуются две встроенных функции Excel, имеющиеся в любой версии – ПОИКСПОЗ (MATCH) для определения последней ячейки диапазона и ИНДЕКС (INDEX) для создания динамической ссылки.

Ищем последнюю ячейку с помощью ПОИСКПОЗ

ПОИСКПОЗ(искомое_значение;диапазон;тип_сопоставления) – функция, которая ищет заданное значение в диапазоне (строке или столбце) и выдает порядковый номер ячейки, где оно было найдено. Например, формула ПОИСКПОЗ(“март”;A1:A5;0) выдаст в качестве результата число 4, т.к. слово «март» расположено в четвертой по счету ячейке в столбце A1:A5. Последний аргумент функции Тип_сопоставления = 0 означает, что мы ведем поиск точного соответствия. Если этот аргумент не указать, то функция переключится в режим поиска ближайшего наименьшего значения – это как раз и можно успешно использовать для нахождения последней занятой ячейки в нашем массиве.

Суть трюка проста. ПОИСКПОЗ перебирает в поиске ячейки в диапазоне сверху-вниз и, по идее, должна остановиться, когда найдет ближайшее наименьшее значение к заданному. Если указать в качестве искомого значение заведомо больше, чем любое имеющееся в таблице, то ПОИСКПОЗ дойдет до самого конца таблицы, ничего не найдет и выдаст порядковый номер последней заполненной ячейки. А нам это и нужно!

Если в нашем массиве только числа, то можно в качестве искомого значения указать число, которое заведомо больше любого из имеющихся в таблице:

dynamic_range7.png

Для гарантии можно использовать число 9E+307 (9 умножить на 10 в 307 степени, т.е. 9 с 307 нулями) – максимальное число, с которым в принципе может работать Excel.

Если же в нашем столбце текстовые значения, то в качестве эквивалента максимально большого числа можно вставить конструкцию ПОВТОР(“я”;255) – текстовую строку, состоящую из 255 букв «я» — последней буквы алфавита. Поскольку при поиске Excel, фактически, сравнивает коды символов, то любой текст в нашей таблице будет технически «меньше» такой длинной «яяяяя….я» строки:

dynamic_range8.png

Формируем ссылку с помощью ИНДЕКС

Теперь, когда мы знаем позицию последнего непустого элемента в таблице, осталось сформировать ссылку на весь наш диапазон. Для этого используем функцию:

ИНДЕКС(диапазон; номер_строки; номер_столбца)

Она выдает содержимое ячейки из диапазона по номеру строки и столбца, т.е. например функция =ИНДЕКС(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):

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

Осталось нажать на ОК и готовый диапазон можно использовать в любых формулах, выпадающих списках или диаграммах.

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

  • Использование функции ВПР (VLOOKUP) для связывания таблиц и подстановки значений
  • Как создать автоматически наполняющийся выпадающий список
  • Как создать сводную таблицу для анализа большого массива данных


Если вам необходимо постоянно добавлять значения в столбец, то для правильной работы Ваших формул, Вам наверняка понадобятся динамические диапазоны, которые автоматически увеличиваются или уменьшаются в зависимости от количества ваших данных.


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

это

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

с изменяющимися границами. Границы диапазона изменяются в зависимости от количества значений в определенном диапазоне.

Динамические диапазоны используются для создания таких структур, как:

Выпадающий (раскрывающийся) список

,

Вложенный связанный список

и

Связанный список

.

Задача

Имеется таблица продаж по месяцам некоторых товаров (см.

Файл примера

):

Необходимо найти сумму продаж товаров в определенном месяце. Пользователь должен иметь возможность выбрать нужный ему месяц и получить итоговую сумму продаж. Выбор месяца пользователь должен осуществлять с помощью

Выпадающего списка

.

Для решения задачи нам потребуется сформировать два

динамических диапазона

: один для

Выпадающего списка

, содержащего месяцы; другой для диапазона суммирования.

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

СМЕЩ()

, которая возвращает ссылку на диапазон в зависимости от значения заданных аргументов. Можно задавать высоту и ширину диапазона, а также смещение по строкам и столбцам.

Создадим

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

для

Выпадающего списка

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

Выпадающий список

не должен содержать пустые строки.

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

как раз и служит для решения такой задачи.

Для создания динамического диапазона:

  • на вкладке

    Формулы

    в группе

    Определенные имена

    выберите команду

    Присвоить имя

    ;
  • в поле

    Имя

    введите:

    Месяц

    ;
  • в поле

    Область

    выберите лист

    Книга

    ;
  • в поле

    Диапазон

    введите формулу

    =СМЕЩ(лист1!$B$5;;;1;СЧЁТЗ(лист1!$B$5:$I$5))
  • нажмите ОК.

Теперь подробнее. Любой диапазон в EXCEL задается координатами верхней левой и нижней правой ячейки диапазона. Исходной ячейкой, от которой отсчитывается положение нашего динамического диапазона, является ячейка

B5

. Если не заданы аргументы функции

СМЕЩ()

смещ_по_строкам,

смещ_по_столбцам

(как в нашем случае), то эта ячейка является левой верхней ячейкой диапазона. Нижняя правая ячейка диапазона определяется аргументами

высота

и

ширина

. В нашем случае значение высоты =1, а значение ширины диапазона равно результату вычисления формулы

СЧЁТЗ(лист1!$B$5:$I$5)

, т.е. 4 (в строке 5 присутствуют 4 месяца с

января

по

апрель

). Итак, адрес нижней правой ячейки нашего

динамического диапазона

определен – это

E

5

.

При заполнении таблицы данными о продажах за

май

,

июнь

и т.д., формула

СЧЁТЗ(лист1!$B$5:$I$5)

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

Выпадающий список

.

ВНИМАНИЕ! При использовании функции

СЧЕТЗ()

необходимо убедиться в отсутствии пустых ячеек! Т.е. нужно заполнять перечень месяцев без пропусков.

Теперь создадим еще один

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

для суммирования продаж.

Для создания

динамического диапазона

:

  • на вкладке

    Формулы

    в группе

    Определенные имена

    выберите команду

    Присвоить имя

    ;
  • в поле

    Имя

    введите:

    Продажи_за_месяц

    ;
  • в поле

    Диапазон

    введите формулу =

    СМЕЩ(лист1!$A$6;;ПОИСКПОЗ(лист1!$C$1;лист1!$B$5:$I$5;0);12)
  • нажмите ОК.

Теперь подробнее.

Функция

ПОИСКПОЗ()

ищет в строке 5 (перечень месяцев) выбранный пользователем месяц (ячейка

С1

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

А6

), высота диапазона не меняется и всегда равна 12 (при желании ее также можно сделать также динамической – зависящей от количества товаров в диапазоне).

И наконец, записав в ячейке

С2

формулу =

СУММ(Продажи_за_месяц)

получим сумму продаж в выбранном месяце.

Например, в мае.

Или, например, в апреле.


Примечание:

Вместо формулы с функцией

СМЕЩ()

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

ИНДЕКС()

: =

$B$5:ИНДЕКС(B5:I5;СЧЁТЗ($B$5:$I$5))

Формула подсчитывает количество элементов в строке 5 (функция

СЧЁТЗ()

) и определяет ссылку на последний элемент в строке (функция

ИНДЕКС()

), тем самым возвращает ссылку на диапазон

B5:E5

.

Визуальное отображение динамического диапазона

Выделить текущий

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

можно с помощью

Условного форматирования

. В

файле примера

для ячеек диапазона

B6:I14

применено правило

Условного форматирования

с формулой: =

СТОЛБЕЦ(B6)=СТОЛБЕЦ(Продажи_за_месяц)

Условное форматирование

автоматически выделяет серым цветом продажи

текущего месяца

, выбранного с помощью

Выпадающего списка

.

Применение динамического диапазона

Примеры использования

динамического диапазона

, например, можно посмотреть в статьях

Динамические диаграммы. Часть5: график с Прокруткой и Масштабированием

и

Динамические диаграммы. Часть4: Выборка данных из определенного диапазона

.

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

​Смотрите также​ То есть, в​Вот думал, что​

  1. ​ЗЫ 2 и​​Например, если имя​​ Вот и в​ на весь наш​​ в четвертой по​​ дописывании новых строк​
  2. ​Выделите ваш диапазон ячеек​Динамический именованный диапазон в Excel
  3. ​ B, а не​ на которое нужно​ нерационально потреблять больше​Динамический именованный диапазон в Excel

​Но, если перед составлением​ фиксировать нахождение активной​ только на этом​Перевел: Антон Андронов​

  1. ​Динамический именованный диапазон автоматически​​ моём примере, хочу​​ СМЕЩ() летуча везде,​​ даже если формулы​​ ЭтоДата имеет в​Динамический именованный диапазон в Excel
  2. ​ приемах () то​​ диапазон. Для этого​​ счету ячейке в​Динамический именованный диапазон в Excel
  3. ​ они автоматически будут​​ и выберите на​​ весь столбец целиком.​ увеличить диапазон в​

    ​ памяти. Это может​
    ​ сложной формулы мы​

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

    ​ ячейки в момент​​ листе) или оставьте​​Автор: Антон Андронов​​ расширяется при добавлении​ чтобы при подстановке​

    • ​ старался в именах​​ работают медленно -​​ RefersTo летучую формулу​
    • ​ же.​​ используем функцию:​​ столбце A1:A5. Последний​
    • ​ добавляться к диаграмме.​​ вкладке​​ Данный факт исключает​
    • ​ высоту. По сути,​​ привести к серьезным​​ присвоим диапазону ​​ создания имени);​​ значение Книга, чтобы​
    • ​Обычно ссылки на диапазоны​​ значения в диапазон.​​ цыфры 10 —>​

    ​ ее избегать, благо​ предпочитаю попить чайку,​ =СЕГОДНЯ()​Почему бы не​ИНДЕКС(диапазон; номер_строки; номер_столбца)​ аргумент функции Тип_сопоставления​При создании выпадающих списков​Главная – Форматировать как​

  4. ​ возможные ошибки связанные​​ название говорит само​​ проблемам при работе​​E2:E8​​на вкладке Формулы в​
  5. ​ имя было доступно​ ячеек вводятся непосредственно​Например, выберите диапазон​ функция СЧЁТ меняла​Динамический именованный диапазон в Excel Динамический именованный диапазон в Excel

​ ИНДЕКС() в помощь.​ но не делать​
​то формула ячейки​
​ использовать обычный ИНДЕКС​

​Она выдает содержимое ячейки​

office-guru.ru

Именованный диапазон в MS EXCEL

​ = 0 означает,​ прямые ссылки на​ Таблицу (Home –​ с памятью при​ за себя.​ с документом. Самым​ какое-нибудь имя (например, Цены),​ группе Определенные имена​ на любом листе​

​ в формулы, например​A1:A4​ диапазон и начинала​ Но со СМЕЩ()​ работу ручками:)​ =ЕСЛИ(A1=1; ЭтоДата) станет​ ? Может тут​

​ из диапазона по​ что мы ведем​ элементы умной таблицы​ Format as Table)​ работе с данным​«Размер диапазона в ширину»​ рациональным решением является​ то ссылку на​ выберите команду Присвоить​ книги;​​ =СУММ(А1:А10). Другим подходом​​и присвойте ему​ считать от одноимённого​ оптимальнее. Теперь умный,​Казанский​ летучей, только если​

​ где-то есть загвоздка​​ номеру строки и​ поиск точного соответствия.​ использовать нельзя, но​:​ документом.​ – количество ячеек,​

​ использование динамических имен.​ диапазон придется менять​ имя;​убедитесь, что в поле​ является использование в​ имя​ аргумента 10 !​

Задача1 (Именованный диапазон с абсолютной адресацией)

​ знаю :)​: Сталкивался с тем,​ A1=1​ ?​

​ столбца, т.е. например​​ Если этот аргумент​​ можно легко обойти​Если вам не нужен​У нас есть динамическое​

​ на которое нужно​

  • ​Выберите инструмент «Формулы»-«Определенные имена»-«Присвоить​​только 1 раз​​в поле Имя введите:​​ Диапазон введена формула​​ качестве ссылки имени​
  • ​Prices​Manyasha​Хотя вряд ли​ что СМЕЩ -​
  • ​Раз уж затронул​В примере два​
  • ​ функция =ИНДЕКС(A1:D5;3;4) по​ не указать, то​​ это ограничение с​​ полосатый дизайн, который​ имя, теперь создадим​ увеличить в ширину​ имя».​и даже не​ Сезонные_Продажи;​ =’1сезон’!$B$2:$B$10​
  • ​ диапазона. В статье​.​:​
  • ​ сильно умный -​

​ единственный вариант. Была​ эту тему, напомню,​​ диапазона, один определяется​​ нашей таблице с​ функция переключится в​ помощью тактической хитрости​ добавляется к таблице​ динамическую диаграмму для​​ от начальной ячейки.​​Заполните поля диалогового окна​

​ в формуле, а​в поле Область выберите​нажмите ОК.​

​ рассмотрим какие преимущества​Рассчитайте сумму.​Шептун​ ведь сколько еще​ тема (не смог​​ что формулы условного​ через ИНДЕКС, другой​ городами и месяцами​​ режим поиска ближайшего​ – использовать функцию​ побочным эффектом, то​ данного типа отчета:​​Последние 2 параметра функции​​ «Создание имени» как​

​ в Диспетчере имен!​ лист​Теперь в любой ячейке​ дает использование имени.​

Задача2 (Именованный диапазон с относительной адресацией)

​Когда вы добавляете значение​, покажите пример в​ не знаю!​ с ходу найти),​ форматирования в ячейках​​ через СМЕЩ:​​ из предыдущего способа​ наименьшего значения –​​ДВССЫЛ (INDIRECT)​​ его можно отключить​Выделите диапазон B2:B6 и​​ являются необязательными. Если​​ на рисунке. Обратите​

​=СУММ(Цены)+СРЗНАЧ(Цены)/5+10/СУММ(Цены)​4сезона​ листа​Назовем Именованным диапазоном в​ к диапазону, Excel​ файле. И напишите​vikttur​ там надо было​ видимой части экрана​=Лист1!$A$2:ИНДЕКС(Лист1!$A:$A;СЧЁТЗ(Лист1!$A:$A))​​ выдаст 1240 –​​ это как раз​

​, которая превращает текст​

  • ​ на появившейся вкладке​​ выберите инструмент: «Вставка»-«Диаграммы»-«Гистограмма»-«Гистограмма​​ их не заполнять,​ внимание на то,​Более того, при создании​(имя будет работать​1сезон​ MS EXCEL, диапазон​ не обновляет сумму.​
  • ​ все условия, при​: Тут не согласен.​ просмотреть ряд частичных​ пересчитываются при любом​
  • ​=СМЕЩ(Лист1!$B$2;;;СЧЁТЗ(Лист1!$B:$B)-1)​ содержимое из 3-й​
  • ​ и можно успешно​ в ссылку:​​Конструктор (Design)​​ с группировкой».​ то диапазон будет​ что в поле​
  • ​ формул EXCEL будет​ только на этом​можно написать формулу​
  • ​ ячеек, которому присвоено​

​Чтобы автоматически расширять именованный​ которых должен меняться​ Большие таблицы и​ сумм строки и​ изменении ячеек этой​Проверял, корректно работают​​ строки и 4-го​​ использовать для нахождения​Т.е. ссылка на умную​. Каждая созданная таким​Щелкните левой кнопкой мышки​ состоять из 1-ой​ «Диапазон:» мы используем​ сам подсказывать имя​

​ листе);​ в простом и​​ Имя (советуем перед​​ диапазон при добавлении​ диапазон.​ с формулами нормально​​ определить, сумма до​​ (и только этой)​ оба.​ столбца, т.е. ячейки​ последней занятой ячейки​​ таблицу в виде​​ образом таблица получает​ по любому столбцу​

​ ячейки. Например: =СМЕЩ(A1;0;0)​
​ функцию =СМЕЩ, а​ диапазона! Для этого​убедитесь, что в поле​ наглядном виде: =СУММ(Продажи).​​ прочтением этой статьи​​ значения, выполните следующие​AVI​ работают. На форум​ какого элемента не​

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

​ видимой части, или​Главный вопрос корректно​ D3. Если столбец​ в нашем массиве.​ текстовой строки (в​ имя, которое можно​

​ гистограммы и в​

​ – это просто​ в одном из​ достаточно ввести первую​ Диапазон введена формула​ Будет выведена сумма​​ ознакомиться с правилами​​ несколько шагов:​​: Подойдет?​​ часто выкладываются только​

​ превосходит заданную, типа,​ даже при перерисовке​ ли задание динамического​​ всего один, то​​Суть трюка проста. ПОИСКПОЗ​ кавычках!) превращается в​ заменить на более​​ строке формул отобразится​​ ячейка A1, а​ ее параметров используем​ букву его имени.​

​ =’4сезона’!B$2:B$10​

​ значений из диапазона​ создания Имен).​На вкладке​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СЧЁТ(ДВССЫЛ(«A»&B1):A20)​ примеры с небольшим​ на сколько месяцев​

​ видимой части экрана​ диапазона через функцию​ его номер можно​ перебирает в поиске​

excel2.ru

Автоматически изменяемые диапазоны ячеек в Excel

​ полноценную ссылку, а​ удобное там же​ функция диаграммы: =РЯД().​ параметр =СМЕЩ(A1;2;0) ссылается​ функцию =СЧЕТ. Пример:​Excel добавит к именам​нажмите ОК.​B2:B10​Преимуществом именованного диапазона является​Formulas​Шептун​ объемом и обрезанными​ хватит товара. Так​ от навигации. Поэтому​ ИНДЕКС, и чем​ не указывать, т.е.​ ячейки в диапазоне​ уж ее выпадающий​

Как в Excel сделать автоматическое изменение диапазона

​ на вкладке​В строке формул измените​ на A3.​ =СМЕЩ(Лист1!$B$2;0;0;СЧЁТ(Лист1!$B:$B);1)​ формул, начинающихся на​Мы использовали смешанную адресацию​.​ его информативность. Сравним​(Формулы) выберите​: AVI:​ таблицами. На самом​ вот, комбинация типа​ и имена, на​ такой вариант хуже/лучше​

​ формула ИНДЕКС(A2:A6;3) выдаст​ сверху-вниз и, по​ список нормально воспринимает.​Конструктор (Design)​

Доходы.

​ параметры функции: =РЯД(Лист1!$B$1;;Лист1!$B$2:$B$7;1)​Теперь разберем функцию: =СЧЕТ,​Переместите курсор в ячейку​ эту букву, еще​ B$2:B$10 (без знака​Также можно, например, подсчитать​ две записи одной​Name Manager​ААААААХренеть как подошла​ деле (иногда это​{ПОИСКПОЗ(…;СУММ(A1:ИНДЕКС(А1:А12;;СТРОКА(2:12)))}​ которые ссылаются формулы​ привычного варианта со​ «Самару» на последнем​ идее, должна остановиться,​Если превращение ваших данных​в поле​ на =РЯД(Лист1!$B$1;;Лист1!доход;1).​ которую мы указывали​ D2 и введите​ и имя диапазона!​ $ перед названием​

  1. ​ среднее значение продаж,​ формулы для суммирования,​
  2. ​(Диспетчер имен).​ ! У меня​ видно по структуре​не работает, а​ условного форматирования, также​ СМЕЩ?​ скриншоте.​ когда найдет ближайшее​ в умную таблицу​Имя таблицы (Table Name)​В отчет добавьте новую​Создание имени.
  3. ​ в 4-ом параметре​ функцию =СУММ с​В процессе работы с​ столбца). Такая адресация​ записав =СРЗНАЧ(Продажи).​

Пример.

​ например, объемов продаж:​Нажмите кнопку​ так ещё ни​ данных) таблицы «мощные»​ так работает:​

​ пересчитываются. Это нужно​

Функция СМЕЩ в Excel

​vikttur​Причем есть один не​ наименьшее значение к​ по каким-либо причинам​.​

​ запись в ячейки​ функции: =СМЕЩ.​ именем «доход» в​ данными в Excel​ позволяет суммировать значения​Обратите внимание, что EXCEL при создании​ =СУММ($B$2:$B$10) и =СУММ(Продажи).​Edit​ одна формула не​ и применение в​{ПОИСКПОЗ(…;ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ(A1;;;(СТРОКА(1:12)))}​ учитывать, но не​

СМЕЩ.

  1. ​: Файл не смотрел.​ совсем очевидный нюанс:​ заданному. Если указать​ нежелательно, то можно​Теперь можно использовать динамические​ A8 — «июль»,​Функция =СЧЕТ($B:$B) автоматически считает​
  2. ​ ее параметрах.​ иногда заранее не​ находящиеся в строках​ имени использовал абсолютную адресацию​ Хотя формулы вернут​(Изменить).​ подходила как эта​ них «массивных» формул​
  3. ​Владимир​ бояться :-)​Для имен СМЕЩ()​ если ИНДЕКС не​ в качестве искомого​ воспользоваться чуть более​ ссылки на нашу​ B8 — «77000»​
  4. ​ количество заполненных ячеек​Теперь постепенно заполняя ячейки​ известно, сколько данных​2 310​ $B$1:$B$10. Абсолютная ссылка​ один и тот​Кликните по полю​
  5. ​ !​ (а можно же​: Игорь, полностью разделяю​Вывод: в формулах​ лучше — короче​

​ просто введена в​ значение заведомо больше,​ сложным, но гораздо​ «умную таблицу»:​ соответственно. И убедитесь,​ в столбце B.​ в столбце B,​ будет собрано в​, в том столбце,​ жестко фиксирует диапазон​

​ же результат (если,​Refers to​Pelena​ столбец-другой добавить) -​

Что определяет функция СЧЕТ

СЧЕТ.

​ Вашу позицию, чем​ именованных диапазонов для​ :)​

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

​(Диапазон) и введите​: Ещё вариант без​ вред.​ быть антагонистом «массивной​ выпадающих списков можно​Летучесть роли не​ =, как обычно,​ в таблице, то​ универсальным методом –​– ссылка на​ автоматически добавился новый​ помощью функции =СЧЕТ()​ как изменяется охват​ таблице. Поэтому мы​ формула суммирования. Формулу​в какой ячейке на​B2:B10​ формулу:​ летучей ДВССЫЛ()​С.М.​ летучести», лучше попить​ и полезно использовать​ играет.​ а используется как​ ПОИСКПОЗ дойдет до​ создать в Excel​ всю таблицу кроме​ столбец.​ и =СМЕЩ() автоматизируем​ ячеек именем «доход».​ не всегда можем​

​ суммирования можно разместить​ листе Вы бы​присвоено имя Продажи),​=OFFSET($A$1,0,0,COUNTA($A:$A),1)​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СЧЁТ(ИНДЕКС(A1:A20;B1):A20)​: Ещё одна формула​ чайку или с​ летучие функции.​Ссылки нет, привожу​ финальная часть ссылки​ самого конца таблицы,​

Динамические диаграммы в Excel

​ динамический именованный диапазон,​ строки заголовка (A2:D5)​Используя наше динамическое имя​ процесс формирования диапазона​

  1. ​​ заранее знать какой​ в любой строке​
  2. ​ не написали формулу​ но иногда проще​=СМЕЩ($A$1;0;0;СЧЕТЗ($A:$A);1)​AVI​ динамического диапазона, «для​РЯД.
  3. ​ девчонками посплетничать.​GIG_ant​ текст «лекции»:​
  4. ​ на диапазон после​ ничего не найдет​ ссылающийся на нашу​Таблица1[#Все]​ «доход» нам удалось​ для имени «доход»,​Разберем более детально функции,​ диапазон должно охватывать​

Динамическая диаграмма.

​ ниже десятой (иначе​=СУММ(Продажи) – суммирование​ работать не напрямую​Объяснение:​: А что значит​ трудоголиков» :-)​:))​

exceltable.com

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

​: И это говорит​ZVI. О летучести​ двоеточия, то выдает​ и выдаст порядковый​ таблицу. Потом, как​– ссылка на​ создать автоматически изменяемую​ что делает его​ которые мы вводили​ имя. Ведь количество​ возникнет циклическая ссылка).​ будет производиться по​

  • ​ с диапазонами, а​Функция​ «летучей»?​
  • ​Пример:​——​ наиглавнейший противник летучих​
  • ​ имен и УФ​ она уже не​
  • ​ номер последней заполненной​ и в случае​ всю таблицу целиком​ динамическую диаграмму, которая​

​ динамическим. Теперь еще​ в поле диапазон​ данных может изменяться.​

​Теперь введем формулу =СУММ(Сезонные_Продажи)​ одному и тому​ с их именами.​OFFSET​Pelena​=ИНДЕКС($C$1:$C$5;2):ИНДЕКС($C$1:$C$5;ЧСТРОК($C$1:$C$5)-1)​12350​ формул ). Куда​Мы часто неосознанно​

Способ 1. Умная таблица

​ содержимое ячейки, а​ ячейки. А нам​ с умной таблицей,​​ (A1:D5)​ сама добавляет и​ раз посмотрим на​​ при создании динамического​

Динамический диапазонȎxcel

​ Для решения данной​ в ячейку​ же диапазону​Совет​(СМЕЩ) принимает 5​: Значит пересчитывается при​​Она включает диапазон​​Казанский​ катится планета ?​ избегаем использования летучих​ ее адрес! Таким​ это и нужно!​ можно будет свободно​​Таблица1[Питер]​​ отображает новые данные​​ нашу формулу, которой​​ имени.​

Динамический диапазонȎxcel

​ задачи следует автоматически​B11.​B1:B10​

  • ​: Узнать на какой диапазон​​ аргументов:​ любом изменении на​ столбца таблицы с​
  • ​: В общем, поиском​​ ))​ функций в формулах​ образом формула вида​
  • ​Если в нашем массиве​​ использовать имя созданного​– ссылка на​ в отчете.​
  • ​ мы присвоили имя​​Функция =СМЕЩ определяет наш​ изменить именованный диапазон​Затем, с помощью​

​.​ ячеек ссылается Имя можно​

​ссылка:​​ листе​​ заголовком и строкой​ по «ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ(» довольно​

​Так есть все​

​ имен, в частности,​​ $A$2:ИНДЕКС($A$2:$A$100;3) даст на​​ только числа, то​ диапазона в любых​ диапазон-столбец без первой​Есть ли у вас​ «доход»: =СМЕЩ(Лист1!$B$2;0;0;СЧЁТ(Лист1!$B:$B);1)​ диапазон в зависимости​

​ используемых ячеек, в​ Маркера заполнения, скопируем​Иногда выгодно использовать не​ через Диспетчер имен​​$A$1​Волатильные функции​ (ячейкой) итогов (которые​​ много тем находится.​ таки разница в​ в формулах динамических​

Динамический диапазонȎxcel

​ выходе уже ссылку​ можно в качестве​ формулах, отчетах, диаграммах​ ячейки-заголовка (C2:C5)​ таблицы с данными​Читать данную формулу следует​ от количества заполненных​ зависимости от количества​

​ ее в ячейки​ абсолютную, а относительную​ расположенный в меню​,​AVI​ могут быть и​Михаил С.​ предложенных вариантах кроме​​ диапазонов для выпадающих​​ на диапазон A2:A4.​ искомого значения указать​

Динамический диапазонȎxcel

​ и т.д. Для​Таблица1[#Заголовки]​ в Excel, размеры​ так: первый параметры​ ячеек в столбце​ введенных данных.​С11D11E11​

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

​ ссылку, об этом​  Формулы/ Определенные имена/​смещение по строкам:​: Очень интересно как​ пустыми),​: Просто ПРОМЕЖУТОЧНЫЕ.ИТОГИ и​ количества букав ?​ списков. При этом​И вот тут в​ число, которое заведомо​ начала рассмотрим простой​– ссылка на​ которых могут изменяться,​ указывает на то,​ B. 5 параметров​Допустим, у нас есть​, и получим суммы​ ниже.​ Диспетчер имен.​0​ индекс вернул ссылку​

Динамический диапазонȎxcel

​но возвращает диапазон​​ ИНДЕКСом не работают…Да​vikttur​ формулы становятся длинными​ дело вступает функция​ больше любого из​ пример:​ «шапку» с названиями​ т.е. количество строк​

​ что наш автоматически​ функции =СМЕЩ(начальная ячейка;​ объект инвестирования, по​ продаж в каждом​​Теперь найдем сумму продаж​​Ниже рассмотрим как присваивать​,​​ на ячейку? Отдельно​​ только внутренних ячеек​ и СМЕЩение еще​

Ищем последнюю ячейку с помощью ПОИСКПОЗ

​: Контрольный:​​ и плохо читаемыми.​ ПОИСКПОЗ, которую мы​ имеющихся в таблице:​Задача​ столбцов (A1:D1)​ (столбцов) может увеличиваться​ изменяемый диапазон начинается​ смещение размера диапазона​ которому мы хотим​ из 4-х сезонов.​ товаров в четырех​ имя диапазонам. Оказывается,​смещение по столбцам:​ индекс дал другое​ таблицы, без шапки​ правильно нужно задать…​=СМЕЩ(Лист1!$B$2;;;ПОИСКПОЗ(«яя»;Лист1!$B:$B;1)-1)​ Но дело в​ вставляем внутрь ИНДЕКС,​Для гарантии можно использовать​: сделать динамический именованный​Такие ссылки замечательно работают​ или уменьшаться в​ в ячейке B2.​ по строкам; смещение​ знать суммарную прибыль​ Формула в ячейках​ сезонах. Данные о​

​ что диапазону ячеек​0​ значение, а в​ и обуви.​хто-то​Мне так больше​ том, что опасения​ чтобы динамически определить​ число 9E+307 (9​ диапазон, который ссылался​ в формулах, например:​ процессе работы? Если​ Следующие два параметра​ по столбцам; размер​ за весь период​B11, С11D11E11​ продажах находятся на​ можно присвоить имя​,​

​ СЧЁТ’е ссылку?​Минусы формулы:​: Народ, а почему​ нравится :)​ насчет пересчета формул​ конец списка:​ умножить на 10​

Динамический диапазонȎxcel

​ бы на список​=СУММ(​ размеры таблицы «плавают»,​ имеют значения 0;0​ диапазона в высоту;​ его использования. Заранее​одна и та​ листе​ по разному: используя​

​высота:​Pelena​- чуть длиннее;​ у меня формула​GIG_ant​ таких имен при​=$A$2:ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(ПОВТОР(«я»;255);A2:A100))​ в 307 степени,​ городов и автоматически​Таблица1[Москва]​ то придется постоянно​ – это значит,​ размер диапазона в​ мы не можем​ же!​4сезона​ абсолютную или смешанную​

Динамический диапазонȎxcel

Формируем ссылку с помощью ИНДЕКС

​COUNTA($A:$A)​: Дело не в​- чтобы добавить​ vikttur не работает​: Спасибо vikttur.​ каждом пересчете формул​Осталось упаковать все это​

​ т.е. 9 с​

​ растягивался-сжимался в размерах​) – вычисление суммы​ мониторить этот момент​ что динамический диапазон​ ширину):​ определить период использования​СОВЕТ:​(см. файл примера)​ адресацию.​или​ СЧЁТ’е, а в​ новую запись, надо​ (((​Может еще есть​ листа (т.е общего​ в единое целое.​ 307 нулями) –​ при дописывании новых​ по столбцу «Москва»​

​ и подправлять:​ не смещается относительно​«Начальная ячейка» – указывает​ инвестиционного объекта. Но​Если выделить ячейку,​ в диапазонах:​Пусть необходимо найти объем​СЧЕТЗ($A:$A)​ двоеточии​ (сделав неимоверное усилие)​ran​ мнения у старожилов​ замедления Excel) лишены​ Откройте вкладку​ максимальное число, с​ городов либо их​или​

​ссылки в формулах отчетов,​ начальной ячейки B2.​ верхнюю левую ячейку,​ нам нужно постоянно​ содержащую формулу с​B2:B10 C2:C10 D2:D10 E2:E10​

​ продаж товаров (см.​

Создаем именованный диапазон

​,​ИНДЕКС вернул начальное​ выделить ячейку строки​​: Она для буковков,​​ и не только​​ оснований.​​Формулы (Formulas)​ которым в принципе​​ удалении.​​=ВПР(F5;​ которые ссылаются на​ А увеличивается только​​ от которой будет​​ следить за общим​

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

​ именем диапазона, и​​. Формулы поместим соответственно​​ файл примера лист​ширина:​ значение диапазона, а​ итогов и …​

planetaexcel.ru

Формула для создания динамического именованного диапазона

​ а не цифирьков.​​ ?​
​Формула динамического диапазона,​и нажмите кнопку​ может работать Excel.​Нам потребуются две встроенных​Таблица1​ нашу таблицу​ его размер по​
​ динамически расширяться диапазон​ доходом, который приносит​ нажать клавишу​ в ячейках​ 1сезон):​

​1​ А20 — конечное​ вставить новую строку.​хто-то​
​Igor67​
​ на основании которой​

​Диспетчер Имен (Name Manager)​Если же в нашем​
​ функции Excel, имеющиеся​;3;0) – поиск в​исходные диапазоны сводных таблиц,​ вертикали, о чем​ как вниз, так​ нам данный объект​F2​

​B11C11 D11E11​​Присвоим Имя Продажи диапазону​
​.​_Boroda_​Плюсы формулы (естественно,​
​: спасибо, буду знать​: Чаще всего пользователи​

​ строится выпадающий список,​. В открывшемся окне​
​ столбце текстовые значения,​ в любой версии​
​ таблице месяца из​ которые построены по​ свидетельствует 4-тый параметр.​ и вправо (при​ инвестирования.​, то соответствующие ячейки​.​B2:B10​Формула COUNTA($A:$A) или СЧЕТЗ($A:$A)​:​ не летуча):​vikttur​ работают с такими​ не пересчитывается при​ нажмите кнопку​ то в качестве​ –​
​ ячейки F5 и​ нашей таблице​ В нем находится​ необходимости).​Сформируйте отчет по доходности​ будут обведены синей​По аналогии с абсолютной​. При создании имени​ – подсчитывает число​AVI​+ при вставке​: {quote}{login=Владимир}{date=07.11.2011 06:57}{thema=}{post}…чем быть​
​ объемами данных что​ пересчете листа, независимо​Создать (New)​ эквивалента максимально большого​ПОИКСПОЗ (MATCH)​ выдача питерской суммы​исходные диапазоны диаграмм, построенных​ функция СЧЕТ и​«Смещение по строкам» –​ нашего объекта инвестирования,​
​ рамкой (визуальное отображение​ адресацией из предыдущей​ будем использовать абсолютную​ значений в столбце​
​, посмотрите, что в​ новой строки автоматом​ антагонистом «массивной летучести»,​ применение «летучих» функций​
​ от того, используются​, введите имя нашего​ числа можно вставить​для определения последней​ по нему (что​ по нашей таблице​ она возвращает число​ параметр определяет, на​ так как показано​ Именованного диапазона).​ задачи, можно, конечно,​ адресацию.​ А. Когда вы​ справке по Индексу​ сохраняется форматирование;​ лучше попить чайку​ не сильно сказывается,​ в ней летучие​
​ диапазона и формулу​ конструкцию ПОВТОР(“я”;255) –​ ячейки диапазона и​ такое ВПР?)​диапазоны для выпадающих списков,​

​ равно количеству заполненных​​ какое количество нужно​ на рисунке:​Предположим, что имеется сложная​ создать 4 именованных​Для этого:​
​ добавляете значение к​ написано​+ можно удалить​ или с девчонками​

​ но вот когда​​ функции или нет.​
​ в поле​
​ текстовую строку, состоящую​ИНДЕКС (INDEX)​

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

​ диапазона с абсолютной​​выделите, диапазон​ диапазону, количество элементов​Цитата​ даже первую (после​ посплетничать.​ из этого уже​ Пересчет формул имен​Диапазон (Reference)​ из 255 букв​для создания динамической​ использовать при создании​ таблицу в качестве​
​ B. Соответственно количество​ вертикали от начальной​ решить путем суммирования​ которой несколько раз​ адресацией, но есть​B2:B10​ увеличивается. В результате,​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Ссылочная форма​
​ заголовка) строку;​Я не антагонист.​ вырастает проблема -​ происходит только при​:​ «я» — последней​

​ ссылки.​​ сводных таблиц, выбрав​ источника данных​ ячеек по вертикали​ ячейки (первого параметра).​ целого столбца B​ используется ссылка на​ решение лучше. С​на листе​ именованный диапазон расширяется.​Описание​+ формулу (или​ И чай люблю,​ нужно думать об​ попытке выбора значения​
​Осталось нажать на​
​ буквы алфавита. Поскольку​ПОИСКПОЗ(искомое_значение;диапазон;тип_сопоставления)​
​ на вкладке​

​Все это в сумме​​ в диапазоне будет​ Значения могут быть​ и после появления​ один и тот​ использованием относительной адресации​1сезон​
​Нажмите​

​Возвращает ссылку на​
​ имя формулы) можно​

​ и с девчонками​​ оптимизации обработки и​ из выпадающего списка.​ОК​

​ при поиске Excel,​​– функция, которая​Вставка – Сводная таблица​ не даст вам​ равно числу, которое​

​ нулевыми и отрицательными.​​ в нем записей​ же диапазон:​ можно ограничиться созданием​;​

​ОК​​ ячейку, расположенную на​ запихнуть в итоговую​

​ :)​​ использовании макросов, а​

​А вот формула​​и готовый диапазон​ фактически, сравнивает коды​ ищет заданное значение​ (Insert – Pivot​ скучать ;)​

​ нам даст функция​«Смещение по столбцам» –​ общая сумма изменялась​=СУММ(E2:E8)+СРЗНАЧ(E2:E8)/5+10/СУММ(E2:E8)​

​ только​на вкладке Формулы в​, а затем​ пересечении …​
​ ячейку внутри СУММ()​Любил применять СМЕЩ().​ не формул.​
​ ячейки, которая ссылается​ можно использовать в​ символов, то любой​

​ в диапазоне (строке​ Table)​Гораздо удобнее и правильнее​ СЧЕТ. А за​ параметр определяет, на​ бы автоматически. Но​Если нам потребуется изменить​одного​
​ группе Определенные имена​Close​Кстати, если так​ или, например, ПРОМЕЖУТОЧНЫЕ.ИТОГИ(…),​

​ Когда узнал ДВССЫЛ()​​ЗЫ мы сталкиваемся​ на имя с​ любых формулах, выпадающих​ текст в нашей​ или столбце) и​и введя имя​ будет создать динамический​ ширину диапазона у​ какое количество нужно​ это некорректный способ​ ссылку на диапазон​Именованного диапазона Сезонные_продажи.​ выберите команду Присвоить​(Закрыть).​ понятнее, то Ленину​и спокойно добавлять/удалять​

​ — тоже очень​​ на форуме уже​ летучими функциями, действительно​ списках или диаграммах.​
​ таблице будет технически​
​ выдает порядковый номер​
​ умной таблицы в​ «резиновый» диапазон, который​ нас отвечает последний​ смещать по горизонтали​ решения задач в​ данных, то это​
​Для этого:​ имя;​Теперь, когда вы добавляете​ формулу можно переписать​
​ записи таблицы.​
​ понравилась.​
​ с критичными объемами​ сама может стать​GIG_ant​ «меньше» такой длинной​ ячейки, где оно​ качестве источника данных:​
​ автоматически будет подстраиваться​ 5-тый параметр, где​
​ от начальной ячейки.​ Excel. Во-первых, нам​ придется сделать 3​
​выделите ячейку​в поле Имя введите:​ значение в диапазон,​
​ вот так​Шептун​Но… Чем дальше​ чаще чем в​ летучей, но только​
​: Добрый день.​ «яяяяя….я» строки:​

planetaexcel.ru

Динамический диапазон функции по условию (Формулы/Formulas)

​ было найдено. Например,​​Если выделить фрагмент такой​
​ в размерах под​ находиться число 1.​ Значения могут быть​ нельзя будет использовать​ раза. Например, ссылку ​B11​ Продажи;​ Excel автоматически обновляет​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СЧЁТ(A20:ИНДЕКС(A1:A20;B1))​: Добрый день,​ в лес, тем​ реальной жизни так,​

​ если в формуле​​Возник вопрос, почему​​Теперь, когда мы знаем​​ формула ПОИСКПОЗ(“март”;A1:A5;0) выдаст​ таблицы (например, первых​ реальное количество строк-столбцов​Благодаря функции СЧЕТ мы​ даже нулевыми и​

​ ячейки столбца B​​E2:E8​
​, в которой будет​

​в поле Область выберите​​ сумму.​
​11:20 и 20:11​скажите пжлста можно​ хуже компас :)​ как люди начинают​ этой ячейки срабатывают​ для определения динамического​

​ позицию последнего непустого​​ в качестве результата​ два столбца) и​
​ данных. Чтобы реализовать​

​ рационально загружаем в​​ отрицательными.​ для ввода других​

​поменять на ​​ находится формула суммирования​ лист​Урок подготовлен для Вас​
​ — одно и​

​ ли изменить диапазон​​Хорошая вещь оптимизация​ искать решение проблем​ условия для обращения​ диапазона зачастую используется​ элемента в таблице,​ число 4, т.к.​

​ создать диаграмму любого​​ такое, есть несколько​ память только заполненные​«Размер диапазона в высоту»​;)
​ данных. Во-вторых, так​J14:J20​ (при использовании относительной​

​1сезон​​ командой сайта office-guru.ru​​ то же в​​ функции (СЧЁТ например)​ — и подумать,​ обработки больших массивов:)​
​ к имени.​​ летучая СМЕЩ ?​
​ осталось сформировать ссылку​
​ слово «март» расположено​ типа, то при​ способов.​
​ ячейки из столбца​ – количество ячеек,​ функция суммирования будет​.​
​ адресации важно четко​
​(имя будет работать​Источник: http://www.excel-easy.com/examples/dynamic-named-range.html​ данном случае​ при изменении условия.​

excelworld.ru

​ и не навредить.​

Skip to content

Как использовать функцию ДВССЫЛ – примеры формул

В этой статье объясняется синтаксис функции ДВССЫЛ, основные способы ее использования и приводится ряд примеров формул, демонстрирующих использование ДВССЫЛ в Excel.

В Microsoft Excel существует множество функций, некоторые из которых просты для понимания, другие требуют длительного обучения. При этом первые используются чаще, чем вторые. И тем не менее, функция Excel ДВССЫЛ  (INDIRECT на английском) является единственной в своем роде. Эта функция Excel не выполняет никаких вычислений, не оценивает никаких условий не ищет значения.

Итак, что такое функция ДВССЫЛ (INDIRECT) в Excel и для чего ее можно использовать? Это очень хороший вопрос, и, надеюсь, вы получите исчерпывающий ответ через несколько минут, когда закончите чтение.

Функция ДВССЫЛ в Excel — синтаксис и основные способы использования

ДВССЫЛ используется для создания косвенных ссылок на ячейки, диапазоны, другие листы или книги. Другими словами, она получает нужный адрес и позволяет вам при помощи формулы создать из него динамическую ссылку на ячейку или диапазон вместо их прямого указания. В результате вы можете изменить ссылку в формуле, не изменяя саму формулу. Более того, эти косвенные ссылки не изменятся при вставке на лист новых строк или столбцов или при удалении уже существующих.

Все это может быть проще понять на примере. Однако чтобы написать формулу, пусть даже самую простую, нужно знать аргументы функции, верно? Итак, давайте сначала кратко рассмотрим синтаксис Excel ДВССЫЛ.

Функция ДВССЫЛ в Excel возвращает ссылку на ячейку, используя текстовую строку. Она имеет два аргумента, первый является обязательным, а второй – нет:

ДВССЫЛ(ссылка_на_ячейку; [a1])

ссылка_на_ячейку – это адрес нужной ячейки в виде текстовой строки, либо названия именованного диапазона.

a1 — логическое значение, указывающее, какой тип ссылки содержится в первом аргументе:

  • Если значение ИСТИНА или опущено, то используется ссылка на ячейку в стиле A1.
  • Если ЛОЖЬ, то возвращается ссылка в виде R1C1.

Таким образом, ДВССЫЛ возвращает либо ссылку на ячейку, либо ссылку на диапазон.

Хотя тип ссылки R1C1 может быть полезен в определенных ситуациях, вам, вероятно, удобнее использовать привычные ссылки типа A1. В любом случае, почти все формулы в этом руководстве будут использовать ссылки A1, и поэтому мы будем просто опускать второй аргумент в функции.

Как работает функция ДВССЫЛ

Чтобы получить представление о работе функции, давайте создадим простую формулу, которая демонстрирует, как можно применить ДВССЫЛ в Excel.

Предположим, у вас есть число 5 в ячейке A1 и текст «A1» в ячейке C1. Теперь поместите формулу =ДВССЫЛ(C1) в любую другую ячейку и посмотрите, что произойдет:

  • Функция ДВССЫЛ обращается к значению в ячейке C1. Там в виде текстовой строки записан адрес «A1».
  • Функция ДВССЫЛ направляется по этому адресу в ячейку A1, откуда извлекает записанное в ней значение, то есть число 555.

Итак, в этом примере функция ДВССЫЛ преобразует текстовую строку в ссылку на ячейку.

Аналогичным образом можно получить ссылку на диапазон. Для этого просто нужно функции ДВССЫЛ указать два адреса – начальный и конечный. Вы видите это на скриншоте ниже.

Формула   ДВССЫЛ(C1&»:»&C2) извлекает адреса из указанных ячеек и превращается в =ДВССЫЛ(«A1:A5»).

В итоге мы получаем ссылку =A1:A5

Если вы считаете, что это все еще имеет очень мало практического смысла, пожалуйста, читайте дальше, и я продемонстрирую вам еще несколько примеров, которые раскрывают реальную силу функции Excel ДВССЫЛ и более подробно показывают, как она работает.

Как использовать ДВССЫЛ в Excel — примеры формул

Как показано в приведенном выше примере, вы можете использовать функцию ДВССЫЛ, чтобы записать адрес ячейки как обычную текстовую строку и получить в результате значение этой ячейки. Однако этот простой пример — не более чем намек на возможности ДВССЫЛ.

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

Создание косвенных ссылок из значений ячеек

Как вы помните, функция ДВССЫЛ в Excel позволяет использовать стили ссылок A1 и R1C1. Обычно вы не можете использовать оба стиля на одном листе одновременно. Вы можете переключаться между двумя типами ссылок только с помощью опции «Файл» > «Параметры» > «Формулы» > R1C1 . По этой причине пользователи Excel редко рассматривают использование R1C1 в качестве альтернативного подхода к созданию ссылок.

В формуле ДВССЫЛ вы можете использовать любой тип ссылки на одном и том же листе, если хотите. Прежде чем мы двинемся дальше, давайте более подробно рассмотрим разницу между стилями ссылок A1 и R1C1.

Стиль A1 — это обычный и привычный всем нам тип адресации в Excel, который указывает сначала столбец, за которым следует номер строки. Например, B2 обозначает ячейку на пересечении столбца B и строки 2.

Стиль R1C1 является обозначает координаты ячейки наоборот – за строками следуют столбцы, и к этому нужно привыкнуть:) Например, R5C1 относится к ячейке A5, которая находится в строке 5, столбце 1 на листе. Если после буквы не следует какая-либо цифра, значит, вы имеете в виду ту же строку или столбец, в которых записана сама формула.

А теперь давайте сравним на простом примере, как функция ДВССЫЛ обрабатывает адреса вида A1 и R1C1:

Как вы видите на скриншоте выше, две разные формулы возвращают один и тот же результат. Вы уже поняли, почему? 

  • Формула в ячейке D1:   =ДВССЫЛ(C1)

Это самый простой вариант. Формула обращается к ячейке C1, извлекает ее значение — текстовую строку «A2» , преобразует ее в ссылку на ячейку, переходит к ячейке A2 и возвращает ее значение, равное 456.

  • Формула в ячейке D3:  =ДВССЫЛ(C3;ЛОЖЬ)

ЛОЖЬ во втором аргументе указывает, что указанное значение (C3) следует рассматривать как ссылку на ячейку в формате R1C1, т. е. сначала идет номер строки, за которым следует номер столбца. Таким образом, наша формула ДВССЫЛ интерпретирует значение в ячейке C3 (R2C1) как ссылку на ячейку на пересечении строки 2 и столбца 1, которая как раз и является ячейкой A2.

Создание ссылок из значений ячеек и текста

Аналогично тому, как мы создавали ссылки из значений ячеек , вы можете комбинировать текстовую строку и ссылку на ячейку с адресом прямо в формуле ДВССЫЛ, соединив их вместе при помощи оператора конкатенации (&).

В следующем примере формула =ДВССЫЛ(«А»&C1) возвращает значение из ячейки А1 на основе следующей логической цепочки:

Функция ДВССЫЛ объединяет элементы в первом аргументе ссылка_на_ячейку — текст «А» и значение из ячейки C1. Значение в C1 – это число 1, что в результате формирует адрес А1. Формула переходит к ячейке А1 и возвращает ее значение – 555.

Использование функции ДВССЫЛ с именованными диапазонами

Помимо создания ссылок на ячейки из текстовых строк, вы можете заставить функцию Excel ДВССЫЛ создавать ссылки на именованные диапазоны.

Предположим, у вас есть следующие именованные диапазоны на вашем листе:

  • Яблоки – С2:E2
  • Лимоны — C3: E3
  • Апельсины – C4:E4 и так далее по каждому товару.

Чтобы создать динамическую ссылку Excel на любой из указанных выше диапазонов с цифрами продаж, просто запишите его имя, скажем, в H1, и обратитесь к этой ячейке при помощи формулы =ДВССЫЛ(H1).

А теперь вы можете сделать еще один шаг и вложить эту формулу в другие функции Excel. Например, попробуем вычислить сумму и среднее значений в заданном именованном диапазоне или найти максимальную и минимальную сумму продаж в нём, как это сделано на скриншоте ниже:

  • =СУММ(ДВССЫЛ (H1))
  • =СРЗНАЧ(ДВССЫЛ (H1))
  • =МАКС(ДВССЫЛ (H1))
  • =МИН(ДВССЫЛ (H1))

Теперь, когда вы получили общее представление о том, как работает функция ДВССЫЛ в Excel, мы можем поэкспериментировать с более серьёзными формулами.

ДВССЫЛ для ссылки на другой рабочий лист

Полезность функции Excel ДВССЫЛ не ограничивается созданием «динамических» ссылок на ячейки. Вы также можете использовать ее для формирования ссылки на другие листы.

Предположим, у вас есть важные данные на листе 1, и вы хотите получить эти данные на листе 2. На скриншоте ниже показано, как можно справиться с этой задачей.

Нам поможет формула:

=ДВССЫЛ(«‘»&A2&»‘!»&B2&C2)

Давайте разбираться, как работает эта формула.

Как вы знаете, обычным способом сослаться на другой лист в Excel является указание имени этого листа, за которым следуют восклицательный знак и ссылка на ячейку или диапазон, например Лист1!A1:С10. Так как имя листа часто содержит пробелы, вам лучше заключить его (имя, а не пробел :) в одинарные кавычки, чтобы предотвратить возможную ошибку, например,

‘Лист 1!’$A$1 или для диапазона – ‘Лист 1!’$A$1:$С$10 .

Наша задача – сформировать нужный текст и передать его функции ДВССЫЛ. Все, что вам нужно сделать, это:

  • записать имя листа в одну ячейку,
  • букву столбца – в другую,
  • номер строки – в третью,  
  • объединить всё это в одну текстовую строку,
  • передать этот адрес функции ДВССЫЛ. 

Помните, что в текстовой строке вы должны заключать каждый элемент, кроме номера строки, в двойные кавычки и затем связать все элементы в единое целое с помощью оператора объединения (&).

С учетом вышеизложенного получаем шаблон ДВССЫЛ для создания ссылки на другой лист:

ДВССЫЛ («‘» & имялиста & «‘!» & имя столбца нужной ячейки & номер строки нужной ячейки )

Возвращаясь к нашему примеру, вы помещаете имя листа в ячейку A2 и вводите адреса столбца и строки в B2 и С2, как показано на скриншоте выше. В результате вы получите следующую формулу:

ДВССЫЛ(«‘»&A2&»‘!»&B2&C2)

Кроме того, обратите внимание, что если вы копируете формулу в несколько ячеек, вам необходимо зафиксировать ссылку на имя листа, используя абсолютные ссылки на ячейки, например $A$2.

Замечание.

  • Если какая-либо из ячеек, содержащих имя листа и адреса ячеек (A2, B2 и c2 в приведенной выше формуле), будет пуста, ваша формула вернет ошибку. Чтобы предотвратить это, вы можете обернуть функцию ДВССЫЛ в функцию ЕСЛИ :

ЕСЛИ(ИЛИ(A2=»»;B2=»»;C2-“”); «»; ДВССЫЛ(«‘»&A2&»‘!»&B2&C2)

  • Чтобы формула ДВССЫЛ, ссылающаяся на другой лист, работала правильно, указанный лист должен быть открыт в Экселе, иначе формула вернет ошибку #ССЫЛКА. Чтобы не видеть сообщение об ошибке, которое может портить вид вашей таблицы, вы можете использовать функцию ЕСЛИОШИБКА, которая будет отображать пустую строку при любой возникшей ошибке:

ЕСЛИОШИБКА(ДВССЫЛ(«‘»&A2&»‘!»&B2&C2); «»)

Формула ДВССЫЛ для ссылки на другую книгу Excel

Формула, которая создает ссылку на другую книгу Excel, основана на том же подходе, что и обычная ссылка на другую электронную таблицу. Вам просто нужно указать имя книги дополнительно к имени листа и адресу ячейки.

Чтобы упростить задачу, давайте начнем с создания ссылки на другую книгу обычным способом (апострофы добавляются, если имена вашей книги и/или листа содержат пробелы):
‘[Имя_книги.xlsx]Имя_листа’!Арес_ячейки

Но, чтобы формула была универсальной, лучше апострофы добавлять всегда – лишними не будут .

Предполагая, что название книги находится в ячейке A2, имя листа — в B2, а адрес ячейки — в C2 и D2, мы получаем следующую формулу:

=ДВССЫЛ(«‘[«&$A$2&».xlsx]»&$B$2&»‘!»&C2&D2)

Поскольку вы не хотите, чтобы ячейки, содержащие имена книг и листов, изменялись при копировании формулы в другие ячейки, вы можете зафиксировать их, используя абсолютные ссылки на ячейки – $A$2 и $B$2 соответственно.

Если адреса ячеек заменить их значениями, то мы получим такой промежуточный результат:

=ДВССЫЛ(«‘[INDIRECT.xlsx]Продажи’!D3»)

Ну а итоговый результат вы видите на скриншоте ниже.

Hbc6

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

=ДВССЫЛ(«‘[» & Название книги & «]» & Имя листа & «‘!» & Адрес ячейки )

Примечание. Рабочая книга, на которую ссылается ваша формула, всегда должна быть открыта, иначе функция ДВССЫЛ выдаст ошибку #ССЫЛКА. Как обычно, функция ЕСЛИОШИБКА может помочь вам избежать этого:

=ЕСЛИОШИБКА(ДВССЫЛ(«‘[«&$A$2&».xlsx]»&$B$2&»‘!»&C2&D2); «»)

Использование функции Excel ДВССЫЛ чтобы зафиксировать ссылку на ячейку

Обычно Microsoft Excel автоматически изменяет ссылки на ячейки при вставке новых или удалении существующих строк или столбцов на листе. Чтобы этого не произошло, вы можете использовать функцию ДВССЫЛ для работы с конкретными адресами ячеек, которые в любом случае должны оставаться неизменными.

Чтобы проиллюстрировать разницу, сделайте следующее:

  1. Введите любое значение в любую ячейку, например, число 555 в ячейку A1.
  2. Обратитесь к A1 из двух других ячеек тремя различными способами: =A1, =ДВССЫЛ(«A1») и ДВССЫЛ(С1), где в С1 записан адрес «А1».
  3. Вставьте новую строку над строкой 1.

Видите, что происходит? Ячейка с логическим оператором =А1 по-прежнему возвращает 555, потому что ее формула была автоматически изменена на =A2 после вставки строки. Ячейки с формулой ДВССЫЛ теперь возвращают нули, потому что формулы в них не изменились при вставке новой строки и они по-прежнему ссылаются на ячейку A1, которая в настоящее время пуста:

После этой демонстрации у вас может сложиться впечатление, что функция ДВССЫЛ больше мешает, чем помогает. Ладно, попробуем по-другому.

Предположим, вы хотите просуммировать значения в ячейках A2:A5, и вы можете легко сделать это с помощью функции СУММ:

=СУММ(A2:A5)

Однако вы хотите, чтобы формула оставалась неизменной, независимо от того, сколько строк было удалено или вставлено. Самое очевидное решение — использование абсолютных ссылок — не поможет. Чтобы убедиться, введите формулу =СУММ($A$2:$A$5) в какую-нибудь ячейку, вставьте новую строку, скажем, в строку 3, и увидите формулу, преобразованную в =СУММ($A$2:$A$6).

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

Решение состоит в использовании функции ДВССЫЛ, например:

=СУММ(ДВССЫЛ(«A2:A5»))

Поскольку Excel воспринимает «A1: A5» как простую текстовую строку, а не как ссылку на диапазон, он не будет вносить никаких изменений при вставке или удалении строки (строк), а также при их сортировке.

Использование ДВССЫЛ с другими функциями Excel

Помимо СУММ, ДВССЫЛ часто используется с другими функциями Excel, такими как СТРОКА, СТОЛБEЦ, АДРЕС, ВПР, СУММЕСЛИ и т. д.

Пример 1. Функции ДВССЫЛ и СТРОКА

Довольно часто функция СТРОКА используется в Excel для возврата массива значений. Например, вы можете использовать следующую формулу массива (помните, что для этого нужно нажать Ctrl + Shift + Enter), чтобы вернуть среднее значение трех наименьших чисел в диапазоне B2:B13

{=СРЗНАЧ(НАИМЕНЬШИЙ(B2:B13;СТРОКА(1:3)))}

Однако, если вы вставите новую строку в свой рабочий лист где-нибудь между строками 1 и 3, диапазон в функции СТРОКА изменится на СТРОКА(1:4), и формула вернет среднее значение четырёх наименьших чисел вместо трёх.

Чтобы этого не произошло, вставьте ДВССЫЛ в функцию СТРОКА, и ваша формула массива всегда будет оставаться правильной, независимо от того, сколько строк будет вставлено или удалено:

={СРЗНАЧ(НАИМЕНЬШИЙ(B2:B13;СТРОКА(ДВССЫЛ(«1:3»))))}

Аналогично, если нам нужно найти сумму трёх наибольших значений, можно использовать ДВССЫЛ вместе с функцией СУММПРОИЗВ.

Вот пример:

={СУММПРОИЗВ(НАИБОЛЬШИЙ(B2:B13;СТРОКА(ДВССЫЛ(«1:3»))))}

А чтобы указать переменное количество значений, которое мы хотим сосчитать, можно это число вынести в отдельную ячейку. К примеру, в С1 запишем цифру 3. Тогда формулу можно изменить таким образом:

={СУММПРОИЗВ(НАИБОЛЬШИЙ(B2:B13;СТРОКА(ДВССЫЛ(«1:»&C1))))}

Согласитесь, что получается достаточно гибкий расчёт.

Пример 2. Функции ДВССЫЛ и АДРЕС

Вы можете использовать Excel ДВССЫЛ вместе с функцией АДРЕС, чтобы получить значение в определенной ячейке на лету.

Как вы помните, функция АДРЕС используется в Excel для получения адреса ячейки по номерам строк и столбцов. Например, формула =АДРЕС(1;3) возвращает текстовую строку «$C$1», поскольку C1 — это ячейка на пересечении 1-й строки и 3-го столбца.

Чтобы создать ссылку на ячейку, вы просто встраиваете функцию АДРЕС в формулу ДВССЫЛ, например:

=ДВССЫЛ(АДРЕС(1;3))

Конечно, эта несложная формула лишь демонстрирует технику. Более сложные примеры использования функций ДВССЫЛ И АДРЕС в Excel см. в статье Как преобразовать строки в столбцы в Excel .

И вот еще несколько примеров формул в которых используется функция ДВССЫЛ, и которые могут оказаться полезными:

  • ВПР и ДВССЫЛ — как динамически извлекать данные из разных таблиц (см. пример 2).
  • Excel ДВССЫЛ и СЧЁТЕСЛИ — как использовать функцию СЧЁТЕСЛИ в несмежном диапазоне или нескольких выбранных ячейках.

Использование ДВССЫЛ для создания выпадающих списков

Вы можете использовать функцию Excel ДВССЫЛ с инструментом проверки данных для создания каскадных выпадающих списков. Они показывают различные варианты выбора в зависимости от того, какое значение пользователь указал в предыдущем выпадающем списке.

Простой зависимый раскрывающийся список сделать очень просто. Все, что требуется, — это несколько именованных диапазонов для хранения элементов раскрывающегося списка.

В ячейке А1 вы создаете простой выпадающий список с названиями имеющихся именованных диапазонов. Для второго зависимого выпадающего списка в ячейке В2 вы используете простую формулу  =ДВССЫЛ(A1), где A1 — это ячейка, в которой выбрано имя нужного именованного диапазона.

К примеру, выбрав в первом списке второй квартал, во втором списке мы видим месяцы этого квартала.

Рис9

Чтобы сделать более сложные трехуровневые меню или раскрывающиеся списки с многоуровневыми записями, вам понадобится немного более сложная формула ДВССЫЛ в сочетании с вложенной функцией ПОДСТАВИТЬ.

Подробное пошаговое руководство по использованию ДВССЫЛ с проверкой данных Excel смотрите в этом руководстве: Как создать зависимый раскрывающийся список в Excel.

Функция ДВССЫЛ Excel — возможные ошибки и проблемы

Как показано в приведенных выше примерах, функция ДВССЫЛ весьма полезна при работе со ссылками на ячейки и диапазоны. Однако не все пользователи Excel охотно принимают этот подход, в основном потому, что постоянное использование ДВССЫЛ приводит к отсутствию прозрачности формул Excel и несколько затрудняет их понимание. Функцию ДВССЫЛ сложно просмотреть и проанализировать ее работу, поскольку ячейка, на которую она ссылается, не является конечным местоположением значения, используемого в формуле. Это действительно довольно запутанно, особенно при работе с большими сложными формулами.

В дополнение к сказанному выше, как и любая другая функция Excel, ДВССЫЛ может вызвать ошибку, если вы неправильно используете аргументы функции. Вот список наиболее типичных ошибок и проблем:

Ошибка #ССЫЛКА! 

Чаще всего функция ДВССЫЛ возвращает ошибку #ССЫЛКА!  в следующих случаях:

  1. Аргумент ссылка_на_ячейку не является допустимой ссылкой Excel. Если вы пытаетесь передать функции текст, который не может обозначать ссылку на ячейку (например, «A1B0»), то формула приведет к ошибке #ССЫЛКА!. Во избежание возможных проблем проверьте аргументы функции ДВССЫЛ .
  2. Превышен предел размера диапазона. Если аргумент ссылка_на_ячейку вашей формулы ДВССЫЛ ссылается на диапазон ячеек за пределами строки  1 048 576 или столбца  16 384, вы также получите ошибку #ССЫЛКА в Excel 2007 и новее. Более ранние версии Excel игнорируют превышение этого лимита и действительно возвращают некоторое значение, хотя часто не то, что вы ожидаете.
  3. Используемый в формуле лист или рабочая книга закрыты.Если ваша формула с ДВССЫЛ адресуется на другую книгу или лист Excel, то эта другая книга или электронная таблица должны быть открыты, иначе ДВССЫЛ возвращает ошибку #ССЫЛКА! . Впрочем, это требование характерно для всех формул, которые ссылаются на другие рабочие книги Excel.

Ошибка #ИМЯ? 

Это самый очевидный случай, подразумевающий, что в названии функции есть какая-то ошибка.

Ошибка из-за несовпадения региональных настроек.

Также распространенная проблема заключается не в названии функции ДВССЫЛ, а в различных региональных настройках для разделителя списка

В европейских странах запятая зарезервирована как десятичный символ, а в качестве разделителя списка используется точка с запятой.

В стандартной конфигурации Windows для Северной Америки и некоторых других стран разделителем списка по умолчанию является запятая. 

В результате при копировании формулы между двумя разными языковыми стандартами Excel вы можете получить сообщение об ошибке « Мы обнаружили проблему с этой формулой… », поскольку разделитель списка, используемый в формуле, отличается от того, что установлен на вашем компьютере. Если вы столкнулись с этой ошибкой при копировании какой-либо НЕПРЯМОЙ формулы из этого руководства в Excel, просто замените все запятые (,) точками с запятой (;) (либо наоборот). В обычных формулах Excel эта проблема, естественно, не возникнет. Там Excel сам поменяет разделители исходя из ваших текущих региональных настроек.

Чтобы проверить, какие разделитель списка и десятичный знак установлены на вашем компьютере, откройте панель управления и перейдите в раздел «Регион и язык» > «Дополнительные настройки».

Надеемся, что это руководство пролило свет для вас на использование ДВССЫЛ в Excel. Теперь, когда вы знаете ее сильные стороны и ограничения, пришло время попробовать и посмотреть, как функция ДВССЫЛ может упростить ваши задачи в Excel. Спасибо за чтение!

Вот еще несколько статей по той же теме:

Как удалить сразу несколько гиперссылок В этой короткой статье я покажу вам, как можно быстро удалить сразу все нежелательные гиперссылки с рабочего листа Excel и предотвратить их появление в будущем. Решение работает во всех версиях Excel,…
Как использовать функцию ГИПЕРССЫЛКА В статье объясняются основы функции ГИПЕРССЫЛКА в Excel и приводятся несколько советов и примеров формул для ее наиболее эффективного использования. Существует множество способов создать гиперссылку в Excel. Чтобы сделать ссылку на…
Гиперссылка в Excel: как сделать, изменить, удалить В статье разъясняется, как сделать гиперссылку в Excel, используя 3 разных метода. Вы узнаете, как вставлять, изменять и удалять гиперссылки на рабочих листах, а также исправлять неработающие ссылки. Гиперссылки широко используются…
Как сделать зависимый выпадающий список в Excel? Одной из наиболее полезных функций проверки данных является возможность создания выпадающего списка, который позволяет выбирать значение из предварительно определенного перечня. Но как только вы начнете применять это в своих таблицах,…

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

Если вам необходимо постоянно добавлять значения в столбец, то для правильной работы Ваших формул, Вам наверняка понадобятся динамические диапазоны, которые автоматически увеличиваются или уменьшаются в зависимости от количества ваших данных.

Динамический диапазон — это Именованный диапазон с изменяющимися границами. Границы диапазона изменяются в зависимости от количества значений в определенном диапазоне.

Имеется таблица продаж по месяцам некоторых товаров (см. Файл примера ):

Необходимо найти сумму продаж товаров в определенном месяце. Пользователь должен иметь возможность выбрать нужный ему месяц и получить итоговую сумму продаж. Выбор месяца пользователь должен осуществлять с помощью Выпадающего списка.

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

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

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

Для создания динамического диапазона:

  • на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя;
  • в поле Имя введите: Месяц;
  • в поле Область выберите лист Книга;
  • в поле Диапазон введите формулу =СМЕЩ(лист1!$B$5;;;1;СЧЁТЗ(лист1!$B$5:$I$5))
  • нажмите ОК.

Теперь подробнее.
Любой диапазон в EXCEL задается координатами верхней левой и нижней правой ячейки диапазона. Исходной ячейкой, от которой отсчитывается положение нашего динамического диапазона, является ячейка B5. Если не заданы аргументы функции СМЕЩ() смещ_по_строкам, смещ_по_столбцам (как в нашем случае), то эта ячейка является левой верхней ячейкой диапазона. Нижняя правая ячейка диапазона определяется аргументами высота и ширина. В нашем случае значение высоты =1, а значение ширины диапазона равно результату вычисления формулы СЧЁТЗ(лист1!$B$5:$I$5) , т.е. 4 (в строке 5 присутствуют 4 месяца с января по апрель). Итак, адрес нижней правой ячейки нашего динамического диапазона определен – это E5.

При заполнении таблицы данными о продажах за май, июнь и т.д., формула СЧЁТЗ(лист1!$B$5:$I$5) будет возвращать число заполненных ячеек (количество названий месяцев) и соответственно определять новую ширину динамического диапазона, который в свою очередь будет формировать Выпадающий список.

ВНИМАНИЕ! При использовании функции СЧЕТЗ() необходимо убедиться в отсутствии пустых ячеек! Т.е. нужно заполнять перечень месяцев без пропусков.

Теперь создадим еще один динамический диапазон для суммирования продаж.

Для создания динамического диапазона:

  • на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя;
  • в поле Имя введите: Продажи_за_месяц;
  • в поле Диапазон введите формулу = СМЕЩ(лист1!$A$6;;ПОИСКПОЗ(лист1!$C$1;лист1!$B$5:$I$5;0);12)
  • нажмите ОК.

Функция ПОИСКПОЗ() ищет в строке 5 (перечень месяцев) выбранный пользователем месяц (ячейка С1 с выпадающим списком) и возвращает соответствующий номер позиции в диапазоне поиска (названия месяцев должны быть уникальны, т.е. этот пример не годится для нескольких лет). На это число столбцов смещается левый верхний угол нашего динамического диапазона (от ячейки А6), высота диапазона не меняется и всегда равна 12 (при желании ее также можно сделать также динамической – зависящей от количества товаров в диапазоне).

И наконец, записав в ячейке С2 формулу = СУММ(Продажи_за_месяц) получим сумму продаж в выбранном месяце.

Или, например, в апреле.

Примечание:
Вместо формулы с функцией СМЕЩ() для подсчета заполненных месяцев можно использовать формулу с функцией ИНДЕКС() :
= $B$5:ИНДЕКС(B5:I5;СЧЁТЗ($B$5:$I$5))

Формула подсчитывает количество элементов в строке 5 (функция СЧЁТЗ() ) и определяет ссылку на последний элемент в строке (функция ИНДЕКС() ), тем самым возвращает ссылку на диапазон B5:E5.

Визуальное отображение динамического диапазона

Выделить текущий динамический диапазон можно с помощью Условного форматирования. В файле примера для ячеек диапазона B6:I14 применено правило Условного форматирования с формулой:
= СТОЛБЕЦ(B6)=СТОЛБЕЦ(Продажи_за_месяц)

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

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

Есть ли у вас таблицы с данными в 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) :

Осталось нажать на ОК и готовый диапазон можно использовать в любых формулах, выпадающих списках или диаграммах.

Трюк №42. Создание увеличивающихся и уменьшающихся диапазонов Excel

Если вам необходимо постоянно обновлять и добавлять данные или если вы работаете с диаграммами и сводными таблицами, вам понадобятся динамические именованные диапазоны, которые увеличиваются и уменьшаются в зависимости от ваших данных.

Чтобы понять, как работают динамические именованные диапазоны, сначала нужно познакомиться с функцией Excel СМЕЩ (OFFSET), если вы еще не знакомы с ней. Функция СМЕЩ (OFFSET) относится к ссылочным функциям и функциям поиска Excel.

Начнем с простейшего динамического именованного диапазона, который будет расширяться вниз по одному столбцу, но только до тех пор, пока в этом столбце есть записи. Например, если в столбце А есть 10 последовательных строк с данными, динамический именованный диапазон будет охватывать диапазон А1:А10. Чтобы создать базовый динамический именованный диапазон, сделайте следующее.

Выберите команду Вставка → Имя → Присвоить (Insert → Name → Define) и в поле Имя (Names in workbook) введите MyRange. В поле Формула (Refers to) введите следующую формулу: =OFFSET($A$1;0;0;COUNTA($A$l:$A$100);l), в русской версии Excel =СМЕЩ($А$1;0;0;СЧЁТЗ($А$1:$А$100);1). Теперь щелкните на кнопке Добавить (Add), затем щелкните на кнопке ОК.

К сожалению, динамические именованные диапазоны нельзя проверить в стандартном поле имени слева от строки формул. Несмотря на это, можно щелкнуть в поле имени, ввести имя MyRange и нажать клавишу Enter. Excel автоматически выделит диапазон. Конечно, можно воспользоваться и диалоговым окном Переход (Go То), выбрав команду Правка → Перейти (Edit → Go To) (сочетание клавиш Ctrl/Apple+G). В поле Ссылка (Reference) введите MyRange и щелкните на кнопке ОК.

В динамическом именованном диапазоне, который вы создали в предыдущем примере, функция СЧЁТЗ (COUNTA) стоит на месте аргумента Высота (Height) функции СМЕЩ (OFFSET).

В следующем примере динамический именованный диапазон мы применим для определения таблицы данных, которая должна быть динамической. Для этогоn в поле Формула (Refers to) введите следующую формулу: =OFFSET($A$1;0;0;COUNTA($A$1:$A$100);COUNTA($1:$1)), в русской версии Excel =СМЕЩ($А$1;0;0;СЧЁТЗ($А$1:$А$100);СЧЁТЗ($1:$1)). Теперь динамический именованный диапазон будет расширяться на столько записей, сколько есть в столбце А, и на столько строк, сколько заголовков в строке 1. Если вы уверены, что количество столбцов в таблице данных меняться не будет, можете заменить вторую функцию СЧЁТЗ (COUNTA) постоянным числом, например, 10.

Единственная проблема при использовании динамического именованного диапазона для таблицы данных заключается в том, что предполагается, что столбец А определяет максимальную длину таблицы. Чаще всего это так, однако иногда самым длинным столбцом может быть другой столбец таблицы. Преодолеть эту проблему можно при помощи функции Excel МАКС (МАХ), которая возвращает самое большое число в диапазоне ячеек. В качестве примера создайте таблицу, как на рис. 3.4.

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

В строке 1 хранятся функции СЧЁТЗ (COUNTA), которые ссылаются вниз на соответствующий столбец и, таким образом, возвращают количество записей в каждом столбце. Функция МАКС (МАХ) будет использоваться в качестве аргумента Высота (Height) функции СМЕЩ (OFFSET). Это гарантирует, что динамический именованный диапазон для этой таблицы всегда будет расширяться вниз на столько ячеек, сколько их содержится в самом длинном столбце в таблице. Конечно же, можно скрыть строку 1, так как пользователю совершенно не нужно ее видеть.

Во всех этих примерах мы предполагали, что данные всегда будут размещаться в соседних строках, между которыми не будет пустых ячеек. Хотя именно этот способ настройки списка или таблицы данных является правильным, иногда он становится неуправляемым.

В следующем примере список чисел в столбце А также содержит пустые ячейки. Это означает, что, если вы попытаетесь воспользоваться функцией СЧЁТ (COUNT) или СЧЁТЗ (COUNTA), динамический именованный диапазон закончится раньше, чем последняя ячейка с данными. Взгляните, например, на рис. 3.5.

Рис. 3.5. Диапазон чисел и диалоговое окно присвоения имени

В этом случае, хотя последнее число диапазона в действительности находится в строке 10, динамический диапазон расширяется вниз только до шестой строки. Причина этого лежит в функции СЧЁТ (COUNT), которая считает значения в ячейках от А1 до А100. Так как в списке только шесть числовых значений, диапазон содержит только шесть строк.

Чтобы преодолеть эту проблему, воспользуйтесь функцией Excel ПОИСКПОЗ (MATCH). Функция ПОИСКПОЗ (MATCH) возвращает относительную позицию элемента массива, соответствующего указанному значению в указанном порядке. Например, если вы примените следующую функцию ПОИСКПОЗ (MATCH): =МАТСН(6;$А$1:$А$100;0), в русской версии Excel =ПОИСКПОЗ(6;$А$1:$А$100;0), к тому же набору чисел, что и на рис. 3.5, она вернет число 10, представляющее строку 10 столбца А. Она возвращает 10, так как вы приказали функции найти число 6 в диапазоне А1:А100.

Очевидно, когда вы используете функцию ПОИСКПОЗ (MATCH) в динамическом именованном диапазоне, последнее число диапазона, вероятно, заранее неизвестно. Таким образом, понадобится задать в функции поиск слишком большого числа, которое никогда не появится в диапазоне, и изменить ее последний аргумент с 0 на 1.

В предыдущем примере вы приказали функции ПОИСКПОЗ (MATCH) найти в точности число 6, не больше и не меньше. Заменив 0 на 1, вы заставите функцию искать самое большое значение, меньшее или равное указанному. Для этого воспользуйтесь формулой =МАТСН(1Е+306;$А$1:$А$100;1), в русской версии Excel =ПОИСКПОЗ(1Е+306;$А$1:$А$100;1).

Чтобы создать динамический именованный диапазон, который будет расширяться до последней строки, содержащей число (независимо от наличия пустых ячеек до нее), введите следующую формулу в поле Формула (Refers to) диалогового окна Присвоение имени (Define Name) (рис. 3.6): =OFFSET(Sheet2!$A$1;0;0;MATCH(lE+306;Sheet2!$A$l:$A$100;1);1), в русской версии Excel =CMEЩ(Sheet2!$A$1;0;0;ПОИСКПОЗ(1E+306;Sheet2!$A$l:$A$100;1);1).

Рис. 3.6. Динамический диапазон, расширяющийся до последней записи, содержащей число

Следующий логический тип динамических именованных диапазонов, вытекающий из данного, — это диапазон, расширяющийся до последней текстовой записи независимо от пустых ячеек в списке или таблице. Для этого измените функцию ПОИСКПОЗ (MATCH) таким образом: МАТСН(«*»;$А$1:$А$100;-1), в русской версии Excel ПОИСКПОЗ(«*»;$А$1;$А$100;-1). Такая функция всегда возвращает номер строки, где содержится последняя текстовая запись в диапазоне $А$1:$А$100.

Теперь, когда известно, как выполнить эту задачу для числовых записей и текстовых значений, единственное, что осталось сделать, — каким-то образом определить динамический именованный диапазон, который будет расширяться, не обращая внимания на пустые ячейки в списке, содержащем и текстовые, и числовые данные.

Для этого сначала вставьте две пустые строки выше списка. Выделите строки 1 и 2 и выберите команду Вставка → Строки (Insert → Row). В первой строке (строка 1) введите следующую функцию: =МАХ(МАТСН»*»;$А$3:$А$100;-1);МАТСН(1Е+306;$А$3:$А$100;1)), в русской версии Excel =МАКС(ПОИСКПОЗ»*»;$А$3:$А$100;-1);ПОИСКПОЗ(1Е+306;$А$3:$А$100;1)). В ячейке под ячейкой с формулой введите число 1. Ячейка еще ниже, под ячейкой с числом 1, должна содержать текстовый заголовок списка. Число 1 было добавлено, чтобы вторая функция ПОИСКПОЗ (MATCH) не вернула ошибку #N/A, если в диапазоне АЗ:А100 не окажется чисел. Первая функция ПОИСКПОЗ (MATCH) всегда найдет текст — в заголовке.

Дайте ячейке А1 имя MaxRow. Выберите команду Вставка → Имя → Присвоить (Insert → Name → Define), присвойте динамическому диапазону имя, например, MyList и в поле Формула (Refers to:) введите следующую формулу: =OFFSET(Sheet2!$A$3;0;0;MaxRow;1), в русской версии Excel =CMEЩ(Sheet2!$A$3;0;0;MaxRow;1).

В следующем списке перечислены типы динамических именованных диапазонов, которые могут оказаться полезными. Для веет этих примеров понадобится заполнить столбец А и текстом, и числовыми значениями. Кроме того, выберите команду Вставка → Имя → Присвоить (Insert → Name → Define) и в поле Имя (Names in workbook) введите имя, состоящее из одного слова (например, MyRange). Все, что будет изменяться, — это формула в поле Формула (Refers to).

Расширить диапазон на столько строк, сколько существует числовых записей: в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;COUNT($A:$A);1), в русской версии Excel =СМЕЩ($А$1;0;0;СЧЁТ($А;$А);1).

Расширить диапазон на столько строк, сколько существует числовых и текстовых записей: в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;COUNTA($A:$A);1), в русской версии Excel =СМЕЩ($А$1;0;0;СЧЁТЗ($А:$А);1).

Расширить до последней числовой записи: в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;MATCH(1E+306;$A:$A)), в русской версии Excel =СМЕЩ($А$1;0;0;ПОИСКПОЗ(1Е+306;$А:$А)). Если вы ожидаете, что может встретиться число, большее 1Е+306 (1 с 306 нулями), введите еще большее число.

Расширить до последней текстовой записи: в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;МАТCH(«*»;$А:$А;-1)), в русской версии Excel =СМЕЩ($А$1;0;0;ПОИСКПОЗ(«*»;$А:$А;-1)).

Расширить вниз в зависимости от значения в другой ячейке:В ячейку В1 введите число 10, а затем в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;$B$1;1), в русской версии Excel =СМЕЩ($А$1;0;0;$В$1;1). Теперь измените число в ячейке В1, и диапазон изменится соответствующим образом.

Расширять вниз по одной строке каждый месяц: В поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0,MONTH(TODAY());1), в русской версии Excel =СМЕЩ($А$1;0;0.МЕСЯЦ(СЕГОДНЯ));1).

Расширять вниз по одной строке каждую неделю: В поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;WEEKNUM(TODAY());1), В русской версии Excel =СМЕЩ($А$1;0;0;ДЕНЬНЕД(СЕГОДНЯ());1)

Для последней формулы необходимо установить Пакет анализа (Analysis ToolPak). Это можно сделать командой Сервис → Надстройки (Tools → Add-ins).

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

Динамический именованный диапазон автоматически расширяется при добавлении значения в диапазон.

  1. Например, выберите диапазон A1:A4 и присвойте ему имя Prices.
  2. Рассчитайте сумму.
  3. Когда вы добавляете значение к диапазону, Excel не обновляет сумму.

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

  1. На вкладке Formulas (Формулы) выберите Name Manager (Диспетчер имен).
  2. Нажмите кнопку Edit (Изменить).
  3. Кликните по полю Refers to (Диапазон) и введите формулу:

Объяснение: Функция OFFSET (СМЕЩ) принимает 5 аргументов:

  • ссылка: $A$1,
  • смещение по строкам: ,
  • смещение по столбцам: ,
  • высота: COUNTA($A:$A) или СЧЕТЗ($A:$A),
  • ширина: 1.

Формула COUNTA($A:$A) или СЧЕТЗ($A:$A) – подсчитывает число значений в столбце А. Когда вы добавляете значение к диапазону, количество элементов увеличивается. В результате, именованный диапазон расширяется.

  • Нажмите ОК, а затем Close (Закрыть).
  • Теперь, когда вы добавляете значение в диапазон, Excel автоматически обновляет сумму.
  • Динамические именованные диапазоны

    Очень часто при использовании связки Выпадающий списокИменованный диапазон возникает проблема: при добавлении новых данных в диапазон они не отразятся сразу в списке — для этого необходимо будет изменить адрес именованного диапазона. Либо указать заранее расширенный диапазон. Но тогда появляются лишние пустые значения в списке, что тоже не очень-то красиво и совсем не удобно, особенно если список не маленький. И вот здесь помогут так называемые Динамические диапазоны. Создав вместо обычного именованного диапазона динамический, уже не придется каждый раз менять адрес диапазона для отображения в списке всех добавленных значений. И отображаться будут только значения, никаких пустых строк.
    Вызываем Диспетчер создания имен(Ctrl+F3), задаем имя диапазона и в поле Диапазон (Refers to) пишем формулу:

    Вариант с формулой СМЕЩ
    =СМЕЩ(Лист2! $A$1 ;;;СЧЁТЗ(Лист2! $A$1:$A$1000 );)
    =OFFSET(Лист2! $A$1 . COUNTA(Лист2! $A$1:$A$1000 ),)

    • Где Лист2! $A$1 — первая ячейка значений для выпадающего списка
    • а Лист2! $A$1:$A$1000 максимальный диапазон ячеек, в котором будут храниться значения для списка. Если значений может быть более 1000, то необходимо увеличить диапазон $A$1:$A$1000 на необходимое количество строк. Хотя мне лично страшно представить себе такой выпадающий список. Но динамический диапазон может ведь пригодиться и для других целей

    В чем главный недостаток этого метода: если добавить в список значений пропуск между значениями в виде пустой строки — список отобразит не все значения списка, т.к. СЧЕТЗ считает количество непустых ячеек:

    Вариант с формулой ИНДЕКС
    =Лист2!$A$1:ИНДЕКС(Лист2! $A$1:$A$1000 ;ПРОСМОТР(2;1/(Лист2! $A$1:$A$1000 <>«»);СТРОКА(Лист2! $A$1:$A$1000 )))
    =Лист2!$A$1:INDEX(Лист2! $A$1:$A$1000 ,LOOKUP(2,1/(Лист2! $A$1:$A$1000 <>«»),ROW(Лист2! $A$1:$A$1000 )))

    Изменяемые ссылки для этой формулы такие же, как и в случае с вариантом через СМЕЩ:

    • Лист2! $A$1 — первая ячейка значений для выпадающего списка
    • Лист2! $A$1:$A$1000 максимальный диапазон ячеек, в котором будут храниться значения для списка

    Однако метод через данную формулу лишен недостатка предыдущего метода: если добавить в список разрыв в виде пустой строки — список отобразится правильно, с этим разрывом и всеми значениями:

    Примечание: созданные таким образом диапазоны нельзя использовать в составе функции ДВССЫЛ (INDIRECT) для создания зависимых выпадающих списков — список просто не будет работать

    Tips_Lists_Dinamic_Range.xls (37,5 KiB, 6 032 скачиваний)

    Статья помогла? Поделись ссылкой с друзьями!

    Поиск по меткам

    Есть вариант ещё интереснее.
    Размещаем список в «Таблице» (ВставкаТаблица)
    Создаём Диапазон ссылающийся на часть таблицы с данными например =Таблица1[Почта](если заголовок списка «Почта» в таблице «Таблица1»)
    Далее всё как указано в основном описании по созданию списка в третьем варианте отсюда: http://www.excel-vba.ru/chto-umeet-excel/vypadayushhie-spiski/

    При необходимости увеличения или изменения состава списка просто добавляете значения вниз таблицы со списком (таблица сама расширится включив новое значение в список) и сортируете. Пустые значения упадут вниз и их можно просто исключить из таблицы или оставить.
    При изменении заголовка списка ссылка в именованном диапазоне поменяется сама.
    Важный момент в настройках должна быть включена функция «ФормулыИспользовать имена таблиц в формулах».

    Поделитесь своим мнением

    Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум

    Понравилась статья? Поделить с друзьями:
  • Динамический календарь в excel
  • Динамический инвестиционный учет excel как включить
  • Динамический диапазон формулы excel
  • Динамический диапазон для графика excel
  • Динамический диапазон в excel что это