Если вам необходимо постоянно добавлять значения в столбец, то для правильной работы Ваших формул, Вам наверняка понадобятся динамические диапазоны, которые автоматически увеличиваются или уменьшаются в зависимости от количества ваших данных.
Динамический диапазон —
это
Именованный диапазон
с изменяющимися границами. Границы диапазона изменяются в зависимости от количества значений в определенном диапазоне.
Динамические диапазоны используются для создания таких структур, как:
Выпадающий (раскрывающийся) список
,
Вложенный связанный список
и
Связанный список
.
Задача
Имеется таблица продаж по месяцам некоторых товаров (см.
Файл примера
):
Необходимо найти сумму продаж товаров в определенном месяце. Пользователь должен иметь возможность выбрать нужный ему месяц и получить итоговую сумму продаж. Выбор месяца пользователь должен осуществлять с помощью
Выпадающего списка
.
Для решения задачи нам потребуется сформировать два
динамических диапазона
: один для
Выпадающего списка
, содержащего месяцы; другой для диапазона суммирования.
Для формирования динамических диапазонов будем использовать функцию
СМЕЩ()
, которая возвращает ссылку на диапазон в зависимости от значения заданных аргументов. Можно задавать высоту и ширину диапазона, а также смещение по строкам и столбцам.
Создадим
динамический диапазон
для
Выпадающего списка
, содержащего месяцы. С одной стороны нужно учитывать тот факт, что пользователь может добавлять продажи за следующие после апреля месяцы (май, июнь…), с другой стороны
Выпадающий список
не должен содержать пустые строки.
Динамический диапазон
как раз и служит для решения такой задачи.
Для создания динамического диапазона:
-
на вкладке
Формулы
в группе
Определенные имена
выберите команду
Присвоить имя
; -
в поле
Имя
введите:
Месяц
; -
в поле
Область
выберите лист
Книга
; -
в поле
Диапазон
введите формулу
=СМЕЩ(лист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. Умная таблица
Выделите ваш диапазон ячеек и выберите на вкладке Главная – Форматировать как Таблицу (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):
Осталось нажать на ОК и готовый диапазон можно использовать в любых формулах, выпадающих списках или диаграммах.
Ссылки по теме
- Использование функции ВПР (VLOOKUP) для связывания таблиц и подстановки значений
- Как создать автоматически наполняющийся выпадающий список
- Как создать сводную таблицу для анализа большого массива данных
Microsoft Office offers far more than just what it says on the box. Programs like Word and Excel are far more powerful than just an average word processor and spreadsheet. Part of the power behind these applications can be found in the built-in functions that they offer. Excel for example offers over 400 built-in functions that use the power of VBA for applications to accomplish difficult tasks simply and efficiently. And when these functions are used in combination, the sky really becomes the limit to the functionality offered by Excel.
For a fantastic course on Excel, aimed at the beginner and more advanced user, sign up for the Microsoft Excel 2010 Course Beginners/ Intermediate Training course now from Udemy and take advantage of the power of tutorials to learn to harness the power of Excel.
This tutorial will show you how to create dynamic ranges for your worksheet. A dynamic range is a named range that atomically adjusts the size of the range when values are added to the range or when values are removed from the range.
The tutorial assumes you know how to create and name a range. For an article on how to work with cell references and create named ranges, you can read Excel Cell References and How to Use Them in Your Worksheets and Formulas, available from the Udemy blog. The tutorial also makes use of the OFFSET and COUNTA functions. For an explanation of how the COUNTA function works, you can read Excel COUNTA: A Step-by-Step Tutorial to Show You How to Use COUNTA.
This tutorial will use the following simple spreadsheet to show you how to create your own dynamic range:
The worksheet contains fictitious sales data. The total sales value is calculated using the following formula:
The average sale per day value is calculated using the following formula:
The reason we are using COUNTA to calculate the total number of sales for the formula, is because once we create the dynamic range, then we will need a way to calculate the number of sales dynamically as well. COUNTA allows you to dynamically calculate the number of sales by counting the number of cells in the column that contains values. The count would include the title cell so the formula takes off one for the title cell.
For a great course on Excel, sign up for the Microsoft Excel 2013 Training Tutorial now and learn to harness the power of formulas in your worksheet.
Now let’s add a sale to our worksheet:
You will notice that the total sales value has not increased. The average sales per day is also incorrect because the sale was not calculated as part of the total sales made.
To add a row automatically when we add further sales to our worksheets, we need to create dynamic ranges that increase or decrease as we add records to the worksheet.
To create a dynamic range we first need to create named ranges for the columns in our worksheet.
How to Create Dynamic Named Ranges
For the purposes of this tutorial we have named the three columns in the example worksheet as “SalesDate”, “Salesman” and “SalesTotal”.
To name the ranges, select the range you want to name and select the formulas tab, and then select the Define Name option from the Defined Names section of the menu.
The following window will appear:
To create the named range you need to enter the name of the range under name. We are going to call the dates range we have selected “SalesDate”.
Next we need to enter the formula under the “refers to” section. This formula will create a range that grows or shrinks as we add or remove a new sales date to our worksheet.
The formula you will enter will be:
=OFFSET(Sheet3!$B$1;0;0;COUNTA(Sheet3!$B:$B);1)
You also need to create a dynamic range for the “Salesman” and “SalesTotal” ranges in the same way, using the necessary columns in each named range.
This is what the named range for the “Salesman” will look like:
And this is what the formula for the “SalesTotal” range will look like:
The OFFSET function is used to create the dynamic range. The OFFSET function uses 5 parameters to return a reference to a range that is offset from the original range. In this case we are not using the offset to offset the range as such but to create a new range based on whether the range has increased or decreased.
By using the COUNTA function within the OFFSET function, we are effectively creating a range based on the value returned by the COUNTA function that reflects the size of the range based on the number of cells that contain values included within the range. So for example if there are 8 cells that contain values within the SalesTotal range, the OFFSET function will create a range of 8 cells. Similarly if you remove a value from the cell, the COUNTA function will count that there are now 7 cells that contain values and the OFFSET function will then create a range of 7 rows for that range.
For an advanced tutorial on Excel, sign up for the Microsoft Excel – Advanced Excel 2010 Training course from Udemy today.
Now we need to adjust our Sum functions in the Total sales per day and Average sales per day formulas to calculate the SUM of the named ranges rather than the column references.
The new formula for the total sales calculation will be:
And the formula for the average sales will be:
If you take a look at the answers to the Sales total and average sales now, you will notice that the Total sales and average sales now correctly reflect the new sale we added.
The worksheet with dynamic ranges looks like this:
If we add further sales to our worksheet now, the figures and ranges automatically increase to include those new sales.
The advantages of Excel Dynamic Ranges
Excel worksheets are most often works in progress. Most of the worksheets we work on are constantly being updated in terms of the data we need to store and manipulate. When you add rows or columns to a worksheet, formulas need to be changed or adapted to include the new information.
Knowing how to create dynamic ranges means that you no longer have to spend valuable time adjusting your formulas and functions. The dynamic range automatically adjusts all of these formulas for you so that you can concentrate on the data itself.
For a comprehensive course on how to harness the power of Excel for you, sign up for the Excel for Business – Learn Excel Online course from Udemy today.
Динамический диапазон в 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
Динамический именованный диапазон автоматически расширяется при добавлении значения в диапазон.
- Например, выберите диапазон A1:A4 и присвойте ему имя Prices.
- Рассчитайте сумму.
- Когда вы добавляете значение к диапазону, Excel не обновляет сумму.
Чтобы автоматически расширять именованный диапазон при добавлении значения, выполните следующие несколько шагов:
- На вкладке Formulas (Формулы) выберите Name Manager (Диспетчер имен).
- Нажмите кнопку Edit (Изменить).
- Кликните по полю Refers to (Диапазон) и введите формулу:
Объяснение: Функция OFFSET (СМЕЩ) принимает 5 аргументов:
- ссылка: $A$1,
- смещение по строкам: ,
- смещение по столбцам: ,
- высота: COUNTA($A:$A) или СЧЕТЗ($A:$A),
- ширина: 1.
Формула COUNTA($A:$A) или СЧЕТЗ($A:$A) – подсчитывает число значений в столбце А. Когда вы добавляете значение к диапазону, количество элементов увеличивается. В результате, именованный диапазон расширяется.
Динамические именованные диапазоны
Очень часто при использовании связки Выпадающий список—Именованный диапазон возникает проблема: при добавлении новых данных в диапазон они не отразятся сразу в списке — для этого необходимо будет изменить адрес именованного диапазона. Либо указать заранее расширенный диапазон. Но тогда появляются лишние пустые значения в списке, что тоже не очень-то красиво и совсем не удобно, особенно если список не маленький. И вот здесь помогут так называемые Динамические диапазоны. Создав вместо обычного именованного диапазона динамический, уже не придется каждый раз менять адрес диапазона для отображения в списке всех добавленных значений. И отображаться будут только значения, никаких пустых строк.
Вызываем Диспетчер создания имен(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
Смотрите также То есть, вВот думал, что
- ЗЫ 2 иНапример, если имя Вот и в на весь наш в четвертой по дописывании новых строк
- Выделите ваш диапазон ячеек
- B, а не на которое нужно нерационально потреблять больше
Но, если перед составлением фиксировать нахождение активной только на этомПеревел: Антон Андронов
- Динамический именованный диапазон автоматически моём примере, хочу СМЕЩ() летуча везде, даже если формулы ЭтоДата имеет в
- приемах () то диапазон. Для этого счету ячейке в
- они автоматически будут и выберите на весь столбец целиком. увеличить диапазон в
памяти. Это может
сложной формулы мы
ячейки в момент листе) или оставьтеАвтор: Антон Андронов расширяется при добавлении чтобы при подстановке
- старался в именах работают медленно - RefersTo летучую формулу
- же. используем функцию: столбце A1:A5. Последний
- добавляться к диаграмме. вкладке Данный факт исключает
- высоту. По сути, привести к серьезным присвоим диапазону создания имени); значение Книга, чтобы
- Обычно ссылки на диапазоны значения в диапазон. цыфры 10 —>
ее избегать, благо предпочитаю попить чайку, =СЕГОДНЯ()Почему бы неИНДЕКС(диапазон; номер_строки; номер_столбца) аргумент функции Тип_сопоставленияПри создании выпадающих списковГлавная – Форматировать как
- возможные ошибки связанные название говорит само проблемам при работеE2:E8на вкладке Формулы в
- имя было доступно ячеек вводятся непосредственноНапример, выберите диапазон функция СЧЁТ меняла
ИНДЕКС() в помощь. но не делать
то формула ячейки
использовать обычный ИНДЕКС
Она выдает содержимое ячейки
office-guru.ru
Именованный диапазон в MS EXCEL
= 0 означает, прямые ссылки на Таблицу (Home – с памятью при за себя. с документом. Самым какое-нибудь имя (например, Цены), группе Определенные имена на любом листе
в формулы, напримерA1:A4 диапазон и начинала Но со СМЕЩ() работу ручками:) =ЕСЛИ(A1=1; ЭтоДата) станет ? Может тут
из диапазона по что мы ведем элементы умной таблицы Format as Table) работе с данным«Размер диапазона в ширину» рациональным решением является то ссылку на выберите команду Присвоить книги; =СУММ(А1:А10). Другим подходоми присвойте ему считать от одноимённого оптимальнее. Теперь умный,Казанский летучей, только если
где-то есть загвоздка номеру строки и поиск точного соответствия. использовать нельзя, но: документом. – количество ячеек,
использование динамических имен. диапазон придется менять имя;убедитесь, что в поле является использование в имя аргумента 10 !
Задача1 (Именованный диапазон с абсолютной адресацией)
знаю :): Сталкивался с тем, A1=1 ?
столбца, т.е. например Если этот аргумент можно легко обойтиЕсли вам не нуженУ нас есть динамическое
на которое нужно
- Выберите инструмент «Формулы»-«Определенные имена»-«Присвоитьтолько 1 разв поле Имя введите: Диапазон введена формула качестве ссылки имени
- PricesManyashaХотя вряд ли что СМЕЩ -
- Раз уж затронулВ примере два
- функция =ИНДЕКС(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 и введите и имя диапазона! $ перед названием
- среднее значение продаж, формулы для суммирования,
- (Диспетчер имен). ! У меня видно по структурене работает, а условного форматирования, также СМЕЩ? скриншоте. когда найдет ближайшее в умную таблицуИмя таблицы (Table Name)В отчет добавьте новую
- в 4-ом параметре функцию =СУММ сВ процессе работы с столбца). Такая адресация записав =СРЗНАЧ(Продажи).
например, объемов продаж:Нажмите кнопку так ещё ни данных) таблицы «мощные» так работает:
пересчитываются. Это нужно
Функция СМЕЩ в Excel
viktturПричем есть один не наименьшее значение к по каким-либо причинам.
запись в ячейки функции: =СМЕЩ. именем «доход» в данными в Excel позволяет суммировать значенияОбратите внимание, что EXCEL при создании =СУММ($B$2:$B$10) и =СУММ(Продажи).Edit одна формула не и применение в{ПОИСКПОЗ(…;ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ(A1;;;(СТРОКА(1:12)))} учитывать, но не
- : Файл не смотрел. совсем очевидный нюанс: заданному. Если указать нежелательно, то можноТеперь можно использовать динамические A8 — «июль»,Функция =СЧЕТ($B:$B) автоматически считает
- ее параметрах. иногда заранее не находящиеся в строках имени использовал абсолютную адресацию Хотя формулы вернут(Изменить). подходила как эта них «массивных» формул
- Владимир бояться :-)Для имен СМЕЩ() если ИНДЕКС не в качестве искомого воспользоваться чуть более ссылки на нашу B8 — «77000»
- количество заполненных ячеекТеперь постепенно заполняя ячейки известно, сколько данных2 310 $B$1:$B$10. Абсолютная ссылка один и тотКликните по полю
- ! (а можно же: Игорь, полностью разделяюВывод: в формулах лучше — короче
просто введена в значение заведомо больше, сложным, но гораздо «умную таблицу»: соответственно. И убедитесь, в столбце B. в столбце B, будет собрано в, в том столбце, жестко фиксирует диапазон
же результат (если,Refers toPelena столбец-другой добавить) -
Что определяет функция СЧЕТ
Вашу позицию, чем именованных диапазонов для :)
ячейку после знака чем любое имеющееся более незаметным иТаблица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)Используя наше динамическое имя процесс формирования диапазона
- заранее знать какой в любой строке
- не написали формулу но иногда проще=СМЕЩ($A$1;0;0;СЧЕТЗ($A:$A);1)AVI динамического диапазона, «для
- девчонками посплетничать.GIG_ant текст «лекции»:
- на диапазон после ничего не найдет ссылающийся на нашуТаблица1[#Все] «доход» нам удалось для имени «доход»,Разберем более детально функции, диапазон должно охватывать
ниже десятой (иначе=СУММ(Продажи) – суммирование работать не напрямуюОбъяснение:: А что значит трудоголиков» :-):))
exceltable.com
Динамический диапазон с автоподстройкой размеров
: И это говоритZVI. О летучести двоеточия, то выдает и выдаст порядковый таблицу. Потом, как– ссылка на создать автоматически изменяемую что делает его которые мы вводили имя. Ведь количество возникнет циклическая ссылка). будет производиться по
- с диапазонами, аФункция «летучей»?
- Пример:—— наиглавнейший противник летучих
- имен и УФ она уже не
- номер последней заполненной и в случае всю таблицу целиком динамическую диаграмму, которая
динамическим. Теперь еще в поле диапазон данных может изменяться.
Теперь введем формулу =СУММ(Сезонные_Продажи) одному и тому с их именами.OFFSETPelena=ИНДЕКС($C$1:$C$5;2):ИНДЕКС($C$1:$C$5;ЧСТРОК($C$1:$C$5)-1)12350 формул ). КудаМы часто неосознанно
Способ 1. Умная таблица
содержимое ячейки, а ячейки. А нам с умной таблицей, (A1:D5) сама добавляет и раз посмотрим на при создании динамического
Для решения данной в ячейку же диапазонуСовет(СМЕЩ) принимает 5: Значит пересчитывается приОна включает диапазонКазанский катится планета ? избегаем использования летучих ее адрес! Таким это и нужно! можно будет свободноТаблица1[Питер] отображает новые данные нашу формулу, которой имени.
задачи следует автоматическиB11.B1:B10
- : Узнать на какой диапазон аргументов: любом изменении на столбца таблицы с
- : В общем, поиском )) функций в формулах образом формула вида
- Если в нашем массиве использовать имя созданного– ссылка на в отчете.
- мы присвоили имяФункция =СМЕЩ определяет наш изменить именованный диапазонЗатем, с помощью
. ячеек ссылается Имя можно
ссылка: листе заголовком и строкой по «ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ(» довольно
Так есть все
имен, в частности, $A$2:ИНДЕКС($A$2:$A$100;3) даст на только числа, то диапазона в любых диапазон-столбец без первойЕсть ли у вас «доход»: =СМЕЩ(Лист1!$B$2;0;0;СЧЁТ(Лист1!$B:$B);1) диапазон в зависимости
используемых ячеек, в Маркера заполнения, скопируемИногда выгодно использовать не через Диспетчер имен$A$1Волатильные функции (ячейкой) итогов (которые много тем находится. таки разница в в формулах динамических
выходе уже ссылку можно в качестве формулах, отчетах, диаграммах ячейки-заголовка (C2:C5) таблицы с даннымиЧитать данную формулу следует от количества заполненных зависимости от количества
ее в ячейки абсолютную, а относительную расположенный в меню,AVI могут быть иМихаил С. предложенных вариантах кроме диапазонов для выпадающих на диапазон A2:A4. искомого значения указать
и т.д. ДляТаблица1[#Заголовки] в Excel, размеры так: первый параметры ячеек в столбце введенных данных.С11D11E11
Способ 2. Динамический именованный диапазон
ссылку, об этом Формулы/ Определенные имена/смещение по строкам:: Очень интересно как пустыми),: Просто ПРОМЕЖУТОЧНЫЕ.ИТОГИ и количества букав ? списков. При этомИ вот тут в число, которое заведомо начала рассмотрим простой– ссылка на которых могут изменяться, указывает на то, B. 5 параметровДопустим, у нас есть, и получим суммы ниже. Диспетчер имен.0 индекс вернул ссылку
но возвращает диапазон ИНДЕКСом не работают…Даvikttur формулы становятся длинными дело вступает функция больше любого из пример: «шапку» с названиями т.е. количество строк
что наш автоматически функции =СМЕЩ(начальная ячейка; объект инвестирования, по продаж в каждомТеперь найдем сумму продажНиже рассмотрим как присваивать, на ячейку? Отдельно только внутренних ячеек и СМЕЩение еще
Ищем последнюю ячейку с помощью ПОИСКПОЗ
: Контрольный: и плохо читаемыми. ПОИСКПОЗ, которую мы имеющихся в таблице:Задача столбцов (A1:D1) (столбцов) может увеличиваться изменяемый диапазон начинается смещение размера диапазона которому мы хотим из 4-х сезонов. товаров в четырех имя диапазонам. Оказывается,смещение по столбцам: индекс дал другое таблицы, без шапки правильно нужно задать…=СМЕЩ(Лист1!$B$2;;;ПОИСКПОЗ(«яя»;Лист1!$B:$B;1)-1) Но дело в вставляем внутрь ИНДЕКС,Для гарантии можно использовать: сделать динамический именованныйТакие ссылки замечательно работают или уменьшаться в в ячейке B2. по строкам; смещение знать суммарную прибыль Формула в ячейках сезонах. Данные о
что диапазону ячеек0 значение, а в и обуви.хто-тоМне так больше том, что опасения чтобы динамически определить число 9E+307 (9 диапазон, который ссылался в формулах, например: процессе работы? Если Следующие два параметра по столбцам; размер за весь периодB11, С11D11E11 продажах находятся на можно присвоить имя,
СЧЁТ’е ссылку?Минусы формулы:: Народ, а почему нравится :) насчет пересчета формул конец списка: умножить на 10
бы на список=СУММ( размеры таблицы «плавают», имеют значения 0;0 диапазона в высоту; его использования. Заранееодна и та листе по разному: используя
высота:Pelena- чуть длиннее; у меня формулаGIG_ant таких имен при=$A$2:ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(ПОВТОР(«я»;255);A2:A100)) в 307 степени, городов и автоматическиТаблица1[Москва] то придется постоянно – это значит, размер диапазона в мы не можем же!4сезона абсолютную или смешанную
Формируем ссылку с помощью ИНДЕКС
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) выдаст таблицы (например, первых реальное количество строк-столбцовБлагодаря функции СЧЕТ мы даже нулевыми и
ячейки столбца BE2:E8
, в которой будет
в поле Область выберите сумму.
11:20 и 20:11скажите пжлста можно хуже компас :) как люди начинают этой ячейки срабатывают для определения динамического
позицию последнего непустого в качестве результата два столбца) и
данных. Чтобы реализовать
рационально загружаем в отрицательными. для ввода других
поменять на находится формула суммирования листУрок подготовлен для Вас
— одно и
ли изменить диапазонХорошая вещь оптимизация искать решение проблем условия для обращения диапазона зачастую используется элемента в таблице, число 4, т.к.
создать диаграмму любого такое, есть несколько память только заполненные«Размер диапазона в высоту»
данных. Во-вторых, такJ14:J20 (при использовании относительной
1сезон командой сайта office-guru.ru то же в функции (СЧЁТ например) — и подумать, обработки больших массивов:)
к имени. летучая СМЕЩ ?
осталось сформировать ссылку
слово «март» расположено типа, то при способов.
ячейки из столбца – количество ячеек, функция суммирования будет.
адресации важно четко
(имя будет работатьИсточник: http://www.excel-easy.com/examples/dynamic-named-range.html данном случае при изменении условия.
excelworld.ru
и не навредить.
Именованные диапазоны в Excel — это отличный инструмент. Они позволяют делать такие вещи, как выпадающие списки в пункте Проверка данных. Или можно присвоить имя диапазону с данными и в дальнейшем ссылаться на него вместо того, чтобы указывать координаты (A1:B5).
Одна из неприятностей, связанных с поддержкой списков — необходимость править диапазон в Формулы > Диспетчер имён после каждого добавления/удаления строк данных в исходном диапазоне. Чтобы избежать подобной ситуации, можно создать динамический диапазон, применив формулы вместо жёстко заданных координат. Чаще всего используется функция СМЕЩ, как показано ниже. Запрос «Excel динамический диапазон» в любом поисковике вернёт сотни ссылок, большинство из которых будут вариантами формулы:
=СМЕЩ(Лист!$A$1, 0, 0, СЧЁТЗ ($A:$A), 1)
СМЕЩ возвращает диапазон, модифицированный относительно базового – пункт Ссылка. Смещпострокам и Смещпостолбцам смещают начало диапазона на соответствующее число строк и столбцов. Высота и Ширина задают количество строк и столбцов в диапазоне.
Ссылка: обычно указывается верхняя левая ячейка именованного диапазона.
Смещпострокам: обычно 0, т.к. стартовую позицию мы уже определили.
Смещпостолбцам: так же обычно 0, по той же самой причине.
Высота: количество строк нашего диапазона (здесь будет формула, см. ниже).
Ширина: количество столбцов в нашем диапазоне (минимум 1).
Понятно, что функция СМЕЩ сама по себе не слишком полезна для наших целей. Если вы собираетесь использовать статические числа, то откажитесь от СМЕЩ, непосредственно прописав диапазон. Причина, по которой мы используем СМЕЩ — возможность замены параметров (аргументов) формулами. Они и позволяют получить динамическую часть.
Типичная формула динамического диапазона, которую можно найти на просторах интернета, использует СЧЁТ (для числовых данных) или СЧЁТЗ (для текста). Обе эти функции подсчитывают количество непустых ячеек. Если мы подсчитаем количество непустых ячеек в одном столбце и введём это число в параметр Высота, то мы получим диапазон от начальной ячейки до последней ячейки с записью. Но это в теории.
В действительности, если вы внимательно читали, мы получим диапазон высотой в то количество строк, которое мы получили от СЧЁТЗ. Если в диапазоне присутствуют пустые ячейки, то выходной диапазон окажется короче, чем необходимо, и последние ячейки потеряются. Помните об этой тонкости.
Наиболее часто динамический диапазон используется в следующих случаях:
- в ссылках в формулах для других таблиц
- для определения исходных диапазонов сводных таблиц
- для определения исходных диапазонов диаграмм
- для определения наборов переменных выпадающих списков
Если у нас есть таблица, в которой меняется количество строк, и есть формулы, использующие ссылку на эту таблицу, то применение динамического диапазона вполне логичный шаг. Допустим у нас есть «база данных», в которую мы заносим каждое обращение клиента, и мы хотим подсчитать количество обращений определённого клиента. Тогда можно сделать нечто такое:
Содержание:
- Что такое динамический диапазон диаграммы?
- Как создать динамический диапазон диаграмм в Excel?
- Использование таблицы Excel
- Использование формул Excel
- Шаг 1 — Создание динамических именованных диапазонов
- Шаг 2 — Создайте диаграмму, используя эти именованные диапазоны
Когда вы создаете диаграмму в Excel и исходные данные меняются, вам необходимо обновить источник данных диаграммы, чтобы убедиться, что он отражает новые данные.
Если вы работаете с часто обновляемыми диаграммами, лучше создать динамический диапазон диаграмм.
Что такое динамический диапазон диаграммы?
Диапазон динамической диаграммы — это диапазон данных, который обновляется автоматически при изменении источника данных.
Затем этот динамический диапазон используется в качестве исходных данных на диаграмме. По мере изменения данных динамический диапазон обновляется мгновенно, что приводит к обновлению диаграммы.
Ниже приведен пример диаграммы, в которой используется динамический диапазон диаграммы.
Обратите внимание, что диаграмма обновляется новыми точками данных за май и июнь, как только данные будут введены.
Как создать динамический диапазон диаграмм в Excel?
Есть два способа создать динамический диапазон диаграммы в Excel:
- Использование таблицы Excel
- Использование формул
В большинстве случаев использование таблицы Excel — лучший способ создания динамических диапазонов в Excel.
Давайте посмотрим, как работает каждый из этих методов.
Щелкните здесь, чтобы загрузить файл примера.
Использование таблицы Excel
Использование таблицы Excel — лучший способ создания динамических диапазонов, поскольку она автоматически обновляется при добавлении к ней новой точки данных.
Функция таблиц Excel была представлена в версии Windows для Excel 2007, и если у вас есть более ранние версии, вы не сможете ее использовать (см. Следующий раздел о создании динамического диапазона диаграмм с помощью формул).
Совет профессионала: Чтобы преобразовать диапазон ячеек в таблицу Excel, выберите ячейки и используйте сочетание клавиш — Ctrl + T (удерживая клавишу Ctrl, нажмите клавишу T).
В приведенном ниже примере вы можете видеть, что как только я добавляю новые данные, таблица Excel расширяется, чтобы включить эти данные как часть таблицы (обратите внимание, что рамка и форматирование расширяются, чтобы включить их в таблицу).
Теперь нам нужно использовать эту таблицу Excel при создании диаграмм.
Вот точные шаги по созданию динамической линейной диаграммы с использованием таблицы Excel:
Вот и все!
Приведенные выше шаги позволят вставить линейную диаграмму, которая будет автоматически обновляться при добавлении дополнительных данных в таблицу Excel.
Обратите внимание, что хотя добавление новых данных автоматически обновляет диаграмму, удаление данных не приведет к полному удалению точек данных. Например, если вы удалите 2 точки данных, на диаграмме отобразится некоторое пустое пространство справа. Чтобы исправить это, перетащите синюю отметку в правом нижнем углу таблицы Excel, чтобы удалить удаленные точки данных из таблицы (как показано ниже).
Хотя я взял пример линейной диаграммы, вы также можете создавать другие типы диаграмм, такие как столбчатые / гистограммы, используя эту технику.
Использование формул Excel
Как я уже упоминал, использование таблицы Excel — лучший способ создавать диапазоны динамических диаграмм.
Однако, если вы по какой-то причине не можете использовать таблицу Excel (возможно, если вы используете Excel 2003), есть другой (немного сложный) способ создания диапазонов динамических диаграмм с использованием формул Excel и именованных диапазонов.
Предположим, у вас есть набор данных, как показано ниже:
Чтобы создать динамический диапазон диаграммы из этих данных, нам необходимо:
- Создайте два динамических именованных диапазона, используя формулу СМЕЩЕНИЕ (по одному для столбцов «Значения» и «Месяцы»). Добавление / удаление точки данных автоматически обновит эти именованные диапазоны.
- Вставьте диаграмму, в которой названные диапазоны используются в качестве источника данных.
Теперь позвольте мне подробно объяснить каждый шаг.
Шаг 1 — Создание динамических именованных диапазонов
Ниже приведены шаги по созданию динамических именованных диапазонов:
Вышеупомянутые шаги создали два именованных диапазона в Рабочей книге — ChartValue и ChartMonth (они относятся к диапазонам значений и месяцев в наборе данных соответственно).
Если вы обновите столбец значений, добавив еще одну точку данных, именованный диапазон ChartValue теперь будет автоматически обновляться, чтобы отобразить в нем дополнительную точку данных.
Здесь волшебство творится с помощью функции СМЕЩЕНИЕ.
В формуле именованного диапазона ChartValue мы указали B2 в качестве контрольной точки. Формула СМЕЩЕНИЕ начинается там и распространяется на все заполненные ячейки в столбце.
Та же логика работает и в формуле именованного диапазона ChartMonth.
Шаг 2 — Создайте диаграмму, используя эти именованные диапазоны
Теперь все, что вам нужно сделать, это вставить диаграмму, которая будет использовать именованные диапазоны в качестве источника данных.
Вот шаги, чтобы вставить диаграмму и использовать динамические диапазоны диаграммы:
Вот и все! Теперь ваша диаграмма использует динамический диапазон и будет обновляться при добавлении / удалении точек данных в диаграмме.
Несколько важных вещей, которые следует знать при использовании именованных диапазонов с диаграммами:
- В данных диаграммы не должно быть пустых ячеек. Если есть пробел, именованный диапазон не будет относиться к правильному набору данных (так как общее количество приведет к тому, что он будет относиться к меньшему количеству ячеек).
- При использовании имени листа в источнике диаграммы необходимо соблюдать соглашение об именах. Например, если имя листа представляет собой одно слово, такое как Формула, вы можете использовать = Формула! ChartValue. Но если есть более одного слова, например Formula Chart, вам нужно использовать = ’Formula Chart’! ChartValue.