Динамическое добавление данных в excel

Что такое динамические массивы

В сентябре 2018 года Microsoft выпустила обновление, которое добавляет в Microsoft Excel совершенно новый инструменты: динамические массивы (Dynamic Arrays) и 7 новых функций для работы с ними. Эти вещи, без преувеличения, совершенно кардинальным образом меняет всю привычную технику работы с формулами и функциями и касаются, буквально, каждого пользователя.

Рассмотрим простой пример, чтобы объяснить суть.

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

Ссылка в формуле на диапазон

Во всех прошлых версиях Excel после нажатия на Enter мы бы получили содержимое только одной первой ячейки B2. А как иначе?

Ну, или можно было бы завернуть этот диапазон в какую-нибудь аггрегирующую функцию типа =СУММ(B2:C4) и получить по нему общий итог.

Если бы нам потребовались операции посложнее примитивной суммы, например, извлечение уникальных значений или Топ-3, то пришлось бы вводить нашу формулу как формулу массива, используя сочетание клавиш Ctrl+Shift+Enter.

Теперь всё по-другому.

Теперь после ввода такой формулы мы можем просто нажать на Enter — и получить в результате сразу все значения, на которые мы ссылались:

Динамический массив

Это не магия, а новые динамические массивы, которые теперь есть в Microsoft Excel. Добро пожаловать в новый мир :)

Особенности работы с динамическими массивами

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

Одна из ячеек массива

Попытка удалить одну или несколько «дочерних» ячеек ни к чему не приведёт — Excel тут же заново их вычислит и заполнит.

При этом ссылаться на эти «дочерние» ячейки в других формулах мы можем совершенно спокойно:

Ссылка на отдельные ячейки массива

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

Копирование динамического массива

Если нам нужно переместить массив, то достаточно будет перенести (мышью или сочетанием Ctrl+X, Ctrl+V), опять же, только первую главную ячейку G4 — вслед за ней перенесется на новое место и заново развернётся весь наш массив.

Если вам нужно сослаться где-нибудь еще на листе на созданный динамический массив, то можно использовать спецсимвол # («решётка») после адреса его ведущей ячейки:

Ссылка на динамический массив

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

Выпадающий список на динамическом массиве

Ошибки динамических массивов

Но что будет, если для развёртывания массива не будет достаточно пространства или на его пути окажутся ячейки уже занятые другими данными? Знакомьтесь с принципиально новым типом ошибок в Excel — #ПЕРЕНОС! (#SPILL!):

Ошибка распространения динамического массива

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

Ошибка ПЕРЕНОС

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

Динамические массивы и «умные» таблицы

Если динамический массив указывает на «умную» таблицу, созданную сочетанием клавиш Ctrl+T или с помощью Главная — Форматировать как таблицу (Home — Format as Table), то он также унаследует её главное качество — автоподстройку размеров.

Динамический массив и умная таблица

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

Растягивание динамического массива

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

Ошибка дин.массива внутри умной таблицы

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

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

Не совсем.

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

Транспонирование

Чтобы транспонировать диапазон (обменять местами строки и столбцы) в Microsoft Excel всегда имелась встроенная функция ТРАНСП (TRANSPOSE). Однако, чтобы её использовать, вы должны были сначала правильно выделить диапазон для результатов (например, если на входе был диапазон 5х3, то вы должны были обязательно выделить 3×5), потом ввести функцию и нажать сочетание Ctrl+Shift+Enter, т.к. она умела работать только в режиме формул массива.

Теперь можно просто выделить одну ячейку, ввести в нее эту же формулу и нажать на обычный Enter — динамический массив сделает всё сам:

Транспонирование и динамический массив

Таблица умножения

Этот пример я обычно приводил, когда меня просили наглядно показать преимущества формул массива в Excel. Теперь чтобы посчитать всю таблицу Пифагора достаточно встать в первую ячейку B2, ввести туда формулу перемножающую два массива (вертикальный и горизонтальный набор чисел 1..10) и просто нажать на Enter:

Таблица умножения динамическим массивом

Склейка и преобразование регистра

Массивы можно не только перемножать, но склеивать стандартным оператором & (амперсанд). Предположим, нам нужно сцпеить имя и фамилию из двух столбцов и поправить скачущий регистр в исходных данных. Делаем это одной короткой формулой, которая формирует весь массив, а потом применяем к нему функцию ПРОПНАЧ (PROPER), чтобы привести в порядок регистр:

Склейка массивов

Вывод Топ-3

Предположим, что у нас есть куча чисел, из которых нужно вывести три лучших результата, расположив их в порядке убывания. Теперь это делается одной формулой и, опять же, без всяких Ctrl+Shift+Enter как раньше:

Топ-3

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

ВПР извлекающая сразу несколько столбцов

Функцей ВПР (VLOOKUP) теперь можно вытаскивать значения не из одного, а сразу из нескольких столбцов — достаточно указать их номера (в любом желаемом порядке) в виде массива в третьем аргументе функции:

ВПР с выводом сразу нескольких столбцов

Функция СМЕЩ (OFFSET) возвращающая динамический массив

Одной из самых интересных и полезных (после ВПР) функций для анализа данных является функция СМЕЩ (OFFSET), которой я посвятил в своё время целую главу в своей книжке и статью здесь. Сложность в понимании и освоении этой функции всегда была в том, что она возвращала в качестве результата массив (диапазон) данных, но увидеть его мы не могли, т.к. Excel до сих пор не умел работать с массивами «из коробки».

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

Функция СМЕЩ и динамический массив

Давайте разберём её аргументы:

  • А1 — стартовая ячейка (точка отсчёта)
  • ПОИСКПОЗ(F2;A2:A30;0) — вычисление сдвига от стартовой ячейки вниз — до первой найденной капусты.
  • 0 — сдвиг «окна» вправо относительно стартовой ячейки
  • СЧЁТЕСЛИ(A2:A30;F2) — вычисление высоты возвращаемого «окна» — количества строк, где есть капуста.
  • 4 — размер «окна» по горизонтали, т.е. выводим 4 столбца

Новые функции для динамических массивов

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

  • СОРТ (SORT) — сортирует входной диапазон и выдает динамический массив на выходе
  • СОРТПО (SORTBY) — умеет сортировать один диапазон по значениям из другого
  • ФИЛЬТР (FILTER) — извлекает из исходного диапазона строки, удовлетворяющие заданным условиям
  • УНИК (UNIQUE) — извлекает из диапазона уникальные значения или убирает повторы
  • СЛМАССИВ (RANDARRAY) — генерит массив случайных чисел заданного размера
  • ПОСЛЕД (SEQUENCE) — формирует массив из последовательности чисел с заданным шагом

Подробнее про них — чуть позже. Они стоят отдельной статьи (и не одной) для вдумчивого изучения :)

Выводы

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

Подбивая итоги, в плюсы динамических массивов можно записать следующее:

  • Можно забыть про сочетание Ctrl+Shift+Enter. Теперь Excel не видит различий между «обычными формулами» и «формулами массива» и обрабатывает их одинаково.
  • Про функцию СУММПРОИЗВ (SUMPRODUCT), которую раньше использовали для ввода формул массива без Ctrl+Shift+Enter тоже можно забыть — теперь достаточно просто СУММ и Enter.
  • Умные таблицы и привычные функции (СУММ, ЕСЛИ, ВПР, СУММЕСЛИМН и т.д.) теперь тоже полностью или частично поддерживают динамические массивы.
  • Есть обратная совместимость: если открыть книгу с динамическими массивами в старой версии Excel, то они превратятся в формулы массива (в фигурных скобках) и продолжат работать в «старом стиле».

Нашлось и некоторое количество минусов:

  • Нельзя удалить отдельные строки, столбцы или ячейки из динамического массива, т.е. он живёт как единый объект.
  • Нельзя сортировать динамический массив привычным образом через Данные — Сортировка (Data — Sort). Для этого есть теперь специальная функция СОРТ (SORT).
  • Динамический диапазон нельзя превратить в умную таблицу (но можно сделать динамический диапазона на основе умной таблицы).

Само-собой, это еще не конец и, я уверен, Microsoft продолжит совершенствовать этот механизм в будущем.

Где скачать?

И, наконец, главный вопрос :)

Microsoft впервые анонсировало и показало превью динамических массивов в Excel еще в сентябре 2018 года на конференции Ignite. В последующие несколько месяцев происходило тщательное тестирование и обкатка новых возможностей сначала на кошках сотрудниках самой Microsoft, а потом на добровольцах-тестировщиках из круга Office Insiders. В этом году обновление, добавляющее динамические массивы стали постепенно раскатывать уже по обычным подписчикам Office 365. Я, например, получил его только в августе с моей подпиской Office 365 Pro Plus (Monthly Targeted).

Если в вашем Excel ещё нет динамических массивов, а поработать с ними очень хочется, то есть следующие варианты:

  • Если у вас подписка Office 365, то можно просто продождать, пока до вас дойдет это обновление. Как быстро это случится — зависит от настройки частоты доставки обновлений для вашего Office (раз в год, раз в полгода, раз в месяц). Если у вас корпоративный ПК, то можно попросить вашего администратора настроить загрузку обновлений почаще.
  • Можно записаться в ряды тех самых добровольцев-тестировщиков Office Insiders — тогда вы будете первым получать все новые возможности и функции (но есть шанс повышенной глючности в работе Excel, само-собой).
  • Если у вас не подписка, а коробочная standalone-версия Excel, то придется ждать до выхода следующей версии Office и Excel в 2022 году, как минимум. Пользователи таких версий получают только обновления безопасности и исправления ошибок, а все новые «плюшки» теперь достаются только подписчикам Office 365. Sad but true :)

В любом случае, когда динамические массивы появятся в вашем Excel — после этой статьи вы будете к этому уже готовы :)

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

  • Что такое формулы массива и как их использовать в Excel
  • Суммирование по окну (диапазону) с помощью функции СМЕЩ (OFFSET)
  • 3 способа транспонировать таблицу в 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)=СТОЛБЕЦ(Продажи_за_месяц)

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

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

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

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

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

.

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

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

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

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

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

и

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

.

Динамический источник данных сводной таблицы

Подробности
Создано 06 Май 2014
Содержание
Фиксированный диапазон
«Умная таблица»
Динамический именованный диапазон

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

В приложенном к статье примере показано 3 варианта построения сводного отчета на основе данных рабочего листа.

  1. Фиксированный диапазон
  2. «Умная таблица» Excel 2007
  3. Динамический именованный диапазон

Фиксированный диапазон

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

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

Одним из вариантов решения проблемы является добавление новых строк в середину диапазона – при этом Excel корректно исправит ссылку на источник данных сводной таблицы.

На практике же обычно удобнее и проще заранее определить максимально возможный диапазон строк источника сводной таблицы, добавив про запас достаточное количество строк. В зависимости от задачи можно добавить как 10, так и 10000 строк, как ни странно, это почти не сказывается на производительности сводной таблицы. В файле-примере поменяйте источник данных сводной таблицы ReportData следующим образом:

alt

alt

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

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

«Умная таблица»

Начиная с версии Excel 2007, в интерфейсе рабочего листа стала доступна работа с так называемой «умной таблицей» (лента Вставка Таблица). Такая таблица имеет расширенные возможности по дизайну, собственную нотацию формул и может быть опубликована на сервере SharePoint для совместного доступа нескольким пользователям. В нашем случае важно, что «умная таблица» Excel может быть указана в качестве источника данных сводного отчета – можно указать ее по имени или выделить мышью (листы Table, ReportTable):

Добавление строк в «умную таблицу» не влияет на источник данных сводного отчета. Ссылка определяется по имени, поэтому анализ всегда проводится на полном объеме информации. Т.е. это вариант решения можно признать удобным в случае, когда исходные данные могут быть преобразованы в «умную таблицу». При ручном заполнении источника данных сводной таблицы этот вариант работы можно даже назвать приоритетным. Недостатком является несовместимость с xls-форматом, а также сложность при автоматизации импорта из внешних систем.

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

«Продвинутые» пользователи Excel умеют использовать именованные диапазоны рабочего листа. При помощи таких имен можно заменять ссылки в формулах или указывать источники данных. Обычные именованные диапазоны – это просто замена длинной ссылки в координатах рабочего листа на короткое имя. Так в примере на листе Data можно выделить область A1:D12, присвоить ей имя, а затем указать его в качестве источника данных сводной таблицы ReportData.

alt

alt

Результат будет совершенно такой же, как и при использовании ссылки на фиксированный диапазон. Т.е. проблемы с добавлением новых строк простой именованный диапазон не решает.

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

Пример такого использования имени с формулой на листах Name и ReportName.

Формула имени source выглядит следующим образом:

=OFFSET(Name!$A$1;0;0;COUNT(Name!$A:$A)+1;COUNTIF(Name!$1:$1;"*")) 

Функции COUNT() и COUNTIF() используются для подсчета непустых значений в диапазоне, COUNT() предназначена для числовых ячеек, COUNTIF() – для текстовых. В формуле вычисляется количество непустых строк для поля типа дата (столбец A) и количество столбцов по заголовкам полей (строка 1). К количеству столбцов добавляется единица, так как в диапазон входит также строка заголовков. Результирующая функция OFFSET() выдает прямоугольный диапазон с относительным смещением от левого верхнего угла рабочего листа (Name!$A$1). Если количество полей исходных данных не меняется, то вместо последнего параметра функции лучше явно указать это число:

=OFFSET(Name!$A$1;0;0;COUNT(Name!$A:$A)+1;4) 

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

Динамический именованный диапазон можно признать самым универсальным способом определения источника сводной таблицы, так как он не требует специальных объектов («умная таблица») и работает даже в старом xls-формате. В приведенном примере имеется требование на наличие непустого идентифицирующего поля в исходном диапазоне. На самом деле его также можно обойти, используя дополнительные вычисления (например, добавив функцию COUNTBLANK()), главное, чтобы в результате был найден конец заполненного диапазона.

Смотри также

» Обработка больших объемов данных. Часть 3. Сводные таблицы

Третья статья, посвященная обработке больших объемов данных с помощью Excel, описывает преимущества использования сводных таблиц….

» Сводная таблица Excelfin.ru

Надстройка предназначена для создания сводных таблиц на основе нескольких диапазонов данных файла Excel. Пользовательский интерфейс в…

» Сводные таблицы

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

» Сводный отчет на основе нескольких таблиц Excel

В стандартном режиме Excel позволяет строить сводные отчеты на основе диапазона ячеек, расположенного на одном рабочем листе. Собрать…

» Обновление списков сводной таблицы

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

I’ll show you how to make formulas and functions that automatically update when more data is added to a range in Excel. 

A simple example is when you want to sum a range that will have more data added to it over time.  You don’t want to have to continue to update your formulas and functions, so you want dynamically updating formulas and functions.

Here is our sample spreadsheet:

Now, let’s add a number to the list and see what happens:

The regular sum did not change but the dynamic sum updated to show the correct amount.

(Make sure to download the workbook for this tutorial so you can follow along).

Here is the regular SUM:

Here is the dynamically updating sum function:

=SUM(OFFSET(A2,0,0,COUNT(A:A)))

To make the above formula compatible with versions of Excel prior to Excel 2007, use this:

=SUM(OFFSET(A2,0,0,COUNT(A1:A100)))

This is just because you can’t reference an entire column in Excel 2003 and earlier and A:A references an entire column, column A.

Now, let’s break-up this formula.

Basically, I am just using the OFFSET() function to return a range that the SUM() function will then use instead of hard-coding a range into the SUM() function.

This is the portion of the above formula that makes it dynamic:

OFFSET(A2,0,0,COUNT(A:A))

All you need to do is to change these two parts of it to work for you:

OFFSET(A2,0,0,COUNT(A:A))

To use the OFFSET() function to return a dynamic range we simply need to put the first cell in the range as the first argument, A2 in this case.

Then, we need to use the COUNT() function as the 4th argument for the OFFSET() function in order to figure out how big our range should be.  Change A:A to whatever column contains your list of data.

The COUNT() function counts all cells in the range that have a number.  The range reference that you use for the COUNT() function should be large enough to hold any size list that you could have in the future so it does not need to be changed.

If you use Excel 2007 or later, just use A:A as the argument for the COUNT() function, as shown in the first dynamic example above.  This way, the entire column will be referenced.

Dynamic Ranges that Include Text and More

If you are in Excel 2007 and later you can use the COUNTA() function instead of the COUNT() function.  The COUNTA() function counts all cells that are NOT empty whereas the COUNT() function only counts the cells that have numbers in them.

Best Practices

If you make formulas and function dynamic by using the OFFSET() function as mentioned above, it will cause confusion and clutter very quickly when you make large formulas.

One commonly used way around this is to use Named Ranges that dynamically update when you add new values to a range.  This uses the same method as we illustrated above except that the OFFSET() function and its contents are contained within a Named Range and this Named Range is then used in the formulas and functions in the spreadsheet whenever you need to reference a range that you want to update each time you add a value to the range or list.

Here is our Dynamic Named Range in Excel Tutorial that will show you how to do that.

The OFFSET() function is the key to creating dynamic formulas and functions in Excel.  Make sure to check out our OFFSET Function Tutorial if you want a more in-depth explanation of how it works. 

Similar Content on TeachExcel

Automatically Shade Every Other Row When You Add Data in Excel

Tutorial: How to make Excel automatically add row shading to every other row when you add data to th…

Convert Numbers into True and False in Excel

Tutorial: How to convert numbers into the TRUE and FALSE Boolean values in Excel. This is very impor…

MOD Function in Excel

Tutorial: The MOD function is very simple but it can be used to do wonderful things in Excel.
It ret…

OFFSET Function in Excel

Tutorial:
The OFFSET function in Excel returns a cell or range reference that is a specified number…

3D References — Formulas that Reference Multiple Sheets at Once in Excel

Tutorial:
Have one simple formula that will reference the same cell or range of cells on multiple w…

Dynamic Named Range in Excel

Tutorial:
How to create a named range that expands automatically when a new value is added to the r…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

  • Динамические таблицы в Excel

Динамические таблицы в Excel (оглавление)

  • Динамические таблицы в Excel
  • Как создать динамические таблицы в Excel?
  • Использование сводной таблицы
  • Использование формул

Динамические таблицы в Excel

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

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

Например: допустим, в прошлом месяце наш диапазон данных был от A1 до C100. В этом месяце он увеличился с A1: C100 до A1: C200. Если вы уже применили сводную таблицу или любую другую формулу, она работает для диапазона данных за последний месяц, т.е. до ячейки C100, но как насчет обновленного источника данных?

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

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

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

Создать динамический диапазон с помощью таблиц Excel

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

У нас есть еще один инструмент под названием Таблицы данных, который является частью What-If-Analysis. Так что не путайся с этим.

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

Существует два основных способа создания динамических таблиц в Excel — 1) Использование сводной таблицы и 2) Использование формул

Вы можете скачать этот шаблон Excel для динамических таблиц здесь — Шаблон Excel для динамических таблиц

Динамические таблицы в Excel — Использование сводной таблицы

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

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

Шаг 1: Выберите все данные.

Шаг 2. Выберите сводную таблицу на вкладке « Вставка ».

Шаг 3: После того, как стержень вставлен, перетащите Продавца в заголовок Строки и Продажи в Значения.

Шаг 4: Теперь я получил обновления продаж за февраль месяц. Я вставил в данные продаж за январь месяц.

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

Это проблема с нормальными диапазонами данных. Каждый раз, когда нам нужно изменить диапазон источника данных, чтобы обновить наши отчеты.

Создать динамическую таблицу для сокращения ручной работы

Создавая таблицы, мы можем сделать данные динамическими.

Шаг 1: Поместите курсор в любое место в данных о продажах за январь.

Шаг 2: Теперь нажмите Ctrl + T, который является клавишей быстрого доступа для вставки таблиц. Это покажет вам диалоговое окно ниже. Убедитесь, что в моей таблице установлены заголовки .

Шаг 3: Нажмите кнопку ОК, чтобы создать таблицу для вас.

Если вы заметите, как только курсор окажется в любом месте данных, он покажет вам новую вкладку на ленте в виде «Дизайн».

Шаг 4: На вкладке «Дизайн» дайте имя вашей таблице. Дайте имя, которое вам легко понять.

Шаг 5: Теперь вставьте новую сводную таблицу в эту таблицу. (Примените предыдущую технику) Одна из прелестей этой таблицы в том, что вам не нужно выбирать весь набор данных, вместо этого вы можете поместить курсор в таблицу и вставить сводную таблицу.

Шаг 6: Теперь добавьте данные о продажах за февраль за эту таблицу.

Шаг 7: Теперь перейдите к сводной таблице и обновите сводную таблицу. Вы можете нажать сочетание клавиш ALT + A + R + A.

Шаг 8: Это обновит сводную таблицу.

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

Динамические таблицы в Excel — Использование формул

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

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

Теперь я добавлю данные о продажах за февраль в список.

Формула по-прежнему показывает старые значения.

Теперь я буду применять формулу к динамической таблице.

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

= SUMIF (SalesTable (продавец), F2, SalesTable (продажи))

SalesTable: это имя таблицы.

Продавец: Это название столбца, на который мы ссылаемся.

F2: это ссылка на ячейку имени торгового представителя.

Продажи: это снова столбец, на который мы ссылаемся.

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

Что нужно помнить о динамических таблицах в Excel

  • Ctrl + T — это сочетание клавиш для создания таблиц.
  • Все заголовки относятся к соответствующим столбцам.
  • Даже отдельная ячейка в столбце указывается заголовком столбца.

  • Мы также можем создавать динамические именованные диапазоны.

Рекомендуемые статьи

Это было руководство к динамическим таблицам Excel. Здесь мы обсудим, как создать динамическую таблицу в Excel с помощью сводной таблицы и формул, а также с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. Как создать таблицы в Excel?
  2. Создать гистограмму в MS Excel
  3. Точечная диаграмма в Excel
  4. Как использовать функцию SUMIF в Excel?

Понравилась статья? Поделить с друзьями:
  • Динамический список vba excel
  • Динамическое содержание в word
  • Динамический просмотр в excel
  • Динамическое программирование решение задач в excel
  • Динамический обмен данными excel