Progress-servis55.ru

Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel задать диапазон формулой

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

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

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

Динамические диапазоны используются для создания таких структур, как: Выпадающий (раскрывающийся) список , Вложенный связанный список и Связанный список .

Задача

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

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

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

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

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

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

  • на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя ;
  • в поле Имя введите: Месяц ;
  • в поле Область выберите лист Книга ;
  • в поле Диапазон введите формулу =СМЕЩ(лист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)=СТОЛБЕЦ(Продажи_за_месяц)

Читать еще:  Енд в excel

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

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

Автоматическое определение диапазона «от-до» в исходной таблице моно применять для автоматизации многих задач связанных с динамической выборкой значений. Рассмотрим один из простых для понимания способов реализации данной задачи.

Как автоматически выделять диапазоны для выборки ячеек из таблицы?

Задание является следующим. В одном из столбцов в разных ячейках находятся какие-то значения (в данном случае текстовые строки «граница»). Они определяют начало и конец секторов (диапазонов). Эти значения вставлены автоматически и могут появляться в разных ячейках. Их размеры и количество в них ячеек также может быть разным. Например, на рисунке ниже выбран сектор данных (диапазон) номер 2.

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

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

Для наглядности приведем решение этой задачи с использованием вспомогательного столбца. В первую ячейку в вспомогательном столбце (A7) вводим формулу:

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

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

Изменяемое значение критерия для управления выборкой данных из таблицы будет указано в ячейке C1. Там мы указываем порядковый номер диапазона, данные которого нас интересуют в конкретный момент.

Как получить адрес диапазона ячеек в Excel?

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

Во втором аргументе функции НАИМЕНЬШИЙ указывается ссылка на ячейку C1, где находится порядковый номер интересующего нас сектора данных (диапазона). А для функции НАИМЕНЬШИЙ – это значение является порядковым номером наименьшего числа в диапазоне вспомогательного столбца $A$7:$A$22 (первый аргумент).

Аналогичным образом динамически определяем адрес последней ячейки, где должна заканчивается выборка. Для этого в C3 водим формулу:

Как не сложно догадаться во втором аргументе функции НАИМЕНЬШИЙ мы прибавляем единицу чтобы получить следующее по порядку наименьшее значение в вспомогательном столбце $A$7:$A$22. Все просто и красиво – такая должна быть магия!

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

Автоматическая подсветка цветом диапазонов ячеек по условию

Будем подсвечивать цвет диапазона, который соответствует порядковому номеру указанном в критериях выборки C1.

  1. Выделите диапазон ячеек C7:C22 и выберите иснтрумент «ГЛАВНАЯ»-«Условное фомратирование»-«Создать правило».
  2. В появившемя окне выберите опцию «Использовать формулу для определения форматируемых ячеек». Там же в поле ввода введите такую фомрулу:
  3. Нажмите на кнопку формат и укажите цвет для подсветки соответствующих ячеек. Например, зеленый.

Теперь мы изменим критерий выборки, например, на 1. Автоматически подсветился зеленым цветом весь первый диапазон. Обратите внимание в нем на одну ячейку больше чем во втором, но все работает безошибочно.

Проверка вводимых значений в Excel на ошибки

Наконец, вы можете предупредить ошибку в случае ввода неверных (не соответствующего формата) значений (числа меньшего или равного нулю, большего, чем общее количество диапазонов) в качестве номера диапазона, который вы ищете. Все это можете сделать при помощи проверки данных. Перейдите на ячейку для ввода критериев выборки C1 и выберите инструмент: «ДАННЫЕ»-«Проверка данных».

Соответствующая формула «обеспечивающая безопасность» могла бы выглядеть так:

0;$D$7

Нажмите ОК, после внесения всех изменений как показано выше на рисунке.

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

Читать еще:  Как сделать консолидацию данных в excel

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

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

Адаптированный перевод статьи Тома Огера (Tom Auger) Named Ranges in Excel that Automatically Expand (Dynamic Ranges Part 1). Статья была доступна здесь.

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

Именованные диапазоны в Excel — это отличный инструмент. Они позволяют делать такие вещи, как выпадающие списки в пункте Проверка данных. Или можно присвоить имя диапазону с данными и в дальнейшем ссылаться на него вместо того, чтобы указывать координаты (A1:B5).

Одна из неприятностей, связанных с поддержкой списков — необходимость править диапазон в Формулы > Диспетчер имён после каждого добавления/удаления строк данных в исходном диапазоне. Чтобы избежать подобной ситуации, можно создать динамический диапазон, применив формулы вместо жёстко заданных координат. Чаще всего используется функция СМЕЩ, как показано ниже. Запрос «Excel динамический диапазон» в любом поисковике вернёт сотни ссылок, большинство из которых будут вариантами формулы:

=СМЕЩ(Лист!$A$1, 0, 0, СЧЁТЗ ($A:$A), 1)

СМЕЩ возвращает диапазон, модифицированный относительно базового – пункт Ссылка. Смещпострокам и Смещпостолбцам смещают начало диапазона на соответствующее число строк и столбцов. Высота и Ширина задают количество строк и столбцов в диапазоне.

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

Смещпострокам: обычно 0, т.к. стартовую позицию мы уже определили.

Смещпостолбцам: так же обычно 0, по той же самой причине.

Высота: количество строк нашего диапазона (здесь будет формула, см. ниже).

Ширина: количество столбцов в нашем диапазоне (минимум 1).

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

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

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

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

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

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

Сначала мы создаём динамический именованный диапазон с помощью Диспетчера имён, после чего используем в нашей формуле.

Формулы, которые мы использовали:

Следующий вариант применения динамического диапазона — сводные таблицы. Воспользуемся «базой» из предыдущего примера. Нам придётся видоизменить формулу динамического диапазона, так как нужно включить заголовки столбцов и включить второй столбец. Мы хотим получить общую сумму для каждого клиента.

Вот начальные данные:

А вот после добавки новых строк (не забываем нажать Обновить):

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

Читать еще:  Почему в excel вместо цифр решетки

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

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

После добавления новых строк:

Сама формула динамического диапазона тривиальна:

Напоследок приведём пример создания динамического диапазона через функцию ИНДЕКС. В общем случае предпочтительно применять неволатильные функции. ИНДЕКС как раз такая, а вот СМЕЩ – волатильная. Результат применения ИНДЕКС по внешнему виду такой же, как и СМЕЩ.

Рассмотрим формулу получения динамического диапазона:

Дело в том, что ИНДЕКС возвращает ссылку, если стоит завершающим выражением диапазона (стоит после двоеточия). Чтобы получить адрес последней ячейки нам надо вычислить номер строки ячейки в диапазоне. Его мы получаем через функцию ПОИСКПОЗ. Она ищет определённое значение в указанном диапазоне. С помощью параметра Тип_сопоставления мы указываем функции искать ближайшее меньшее значение. При этом указываем заведомо большее значение для поиска. В результате функция обязательно дойдёт до последней ячейки.Если поиск идёт по числам, то можно использовать 9E+307. Для текста применим функцию ПОВТОР.

Конструкция ПОВТОР(“я”;255) создаёт строку из 255 литер “я”. При сравнении практически любой текст окажется «меньше», и функция найдёт последнюю строку. Ещё одним плюсом применения функции ИНДЕКС является нечувствительность к пустым ячейкам.

Диапазон в Excel

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

Ячейки, строки, столбцы

Давайте начнем с выбора ячеек, строк и столбцов.

    Для выбора ячейки C3 кликните по полю на пересечении столбца C и строки 3.


Чтобы выбрать столбец C, кликните по заголовку столбца C.


Чтобы выбрать строку 3, кликните по заголовку строки 3.

Примеры диапазона

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

    Для выбора диапазона B2:C4 кликните по нижнему правому углу ячейки В2 и протяните указатель мыши до ячейки C4.


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

Заполнение диапазона

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

    Введите значение 2 в ячейку B2.


Выделите ячейку В2, зажмите её нижний правый угол и протяните вниз до ячейки В8.

Эта техника протаскивания очень важна, вы будете часто использовать её в Excel. Вот еще один пример:
Введите значение 2 в ячейку В2 и значение 4 в ячейку B3.


Выделите ячейки B2 и B3, зажмите нижний правый угол этого диапазона и протяните его вниз.

Excel автоматически заполняет диапазон, основываясь на шаблоне из первых двух значений. Классно, не правда ли? Вот еще один пример:
Введите дату 13/6/2013 в ячейку В2 и дату 16/6/2013 в ячейку B3 (на рисунке приведены американские аналоги дат).


Выделите ячейки B2 и B3, зажмите нижний правый угол этого диапазона и протяните его вниз.

Перемещение диапазона

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

    Выделите диапазон и зажмите его границу.


Перетащите диапазон на новое место.

Копировать/вставить диапазон

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

    Выделите диапазон, кликните по нему правой кнопкой мыши и нажмите Copy (Копировать) или сочетание клавиш Ctrl+C.


Выделите ячейку, где вы хотите разместить первую ячейку скопированного диапазона, кликните правой кнопкой мыши и выберите команду Paste (Вставить) в разделе Paste Options (Параметры вставки) или нажмите сочетание клавиш Ctrl+V.

Вставка строки, столбца

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

    Выделите строку 3.


Кликните по ней правой кнопкой мыши и выберите команду Insert (Вставить).

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

Ссылка на основную публикацию
Adblock
detector