Динамические массивы в 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

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel для iPad Excel для iPhone Еще…Меньше

В сентябре 2018 г. мы выпустили формулы динамического массива для Excel для Microsoft 365. Различия между динамическими массивами и устаревшими формулами CTRL+SHIFT+ВВОД (CSE) рассмотрены ниже.

Примечание: В настоящее время эта функция доступна только для части ее текущих insiders. Мы будем оптимизировать такие функции в течение следующих нескольких месяцев. Когда они будут готовы, мы разпустим их для всех инсайдеров Office и подписчиков Microsoft 365.

Формулы динамического массива:

  • Может «пролит» за пределами границ ячейки, в которой введена формула. В следующем примере показана функция RANDARRAY в D1, которая передается через D1:F5 или 5 строк на 3 столбца. Технически динамическая формула массива существует только в ячейке D1, в то время как при устаревшей формуле CSE формула должна в должна быть введена во всем диапазоне.

    Функция RANDARRAY, введенная в ячейку D1, с сбросом из D1 в клавишу F5.

  • При добавлении или удалении данных в диапазоне источника автоматически будет меняться их объем. Формулы массива CSE утесируют возвращаемую область, если она слишком мала, или #N/A, если она слишком большая.

  • Вычислять в контексте 1×1. Например, функция СЛ RAND возвращает один результат, поэтому если требуется вернуть в сетку несколько случайных чисел, можно использовать функцию СЛРАСП. Функции СТРОКАи СТОЛБЕЦ возвращают строку и столбец ячейки источника. Функцию ПОСЛЕПОРЯДОК(СТРОКА()) можно использовать для репликации старого поведения функции СТРОКА в устаревшей формуле массива.

  • Новые формулы, которые возвращают больше одного результата, будут автоматически пролиты. Не нужно нажимать CTRL+SHIFT+ВВОД.

  • Формулы массива CSE сохраняются из соображений совместимости. В будущем следует использовать динамические формулы массивов.

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

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

  • Вставка и удаление столбцов и строк запрещается в активном диапазоне формул массива CSE. Сначала необходимо удалить все существующие формулы массива, которые на этом на пути.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функция ФИЛЬТР

Функция СЛУЧМАССИВ

Функция ПОСЛЕДОВ

Функция СОРТ

Функция СОРТПО

Функция УНИК

Ошибки #ПЕРЕНОС! в Excel

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

Неявное пересечение: @

Нужна дополнительная помощь?

24 сентября 2018 года Microsoft представила одно из самых существенных изменений в Excel за последнее десятилетие — Dynamic Array Functions, если вообще не с момента выхода электронного процессора. Революционность изменений косвенно подтверждается и периодом предварительного тестирования, по состоянию на конец лета 2019 года, воспользоваться нововведением могут только участники программы Office Insider.

Dynamic Array Functions (DAF) или в переводе функции динамических массивов. На первый взгляд может показаться, что достаточно тривиальное нововведение — 7 дополнительных функций (5 из группы «Ссылки и массивы» и 2 из группы «Математические»):

  • ФИЛЬТР (FILTER)
  • УНИК (UNIQUE)
  • ОДНОЗНАЧ (SINGLE)
  • СОРТ (SORT)
  • СОРТПО (SORTBY)
  • СЛУЧМАССИВ (RANDARRAY)
  • ПОСЛЕДОВ (SEQUENCE)

Также табличный процессор пополнился дополнительной ошибкой #ПЕРЕНОС! или #SPILL! в англоязычной версии программы.

В чем же революционность обновления?

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

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

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

Да введения DAF, Excel не мог расширять возвращаемый диапазон на несколько ячеек. Опытный пользователь подметит «А как же формулы массива, введенные через сочетание Ctrl + Shift + Enter ?». Это не динамические массивы, т.к. область возвращаемого диапазона должна быть заранее очерчена пользователем.

Однако, справедливости ради следует отметить, что с формул массива все и началось, просто это эволюционировало в DAF, о чем косвенно можно судить из сообщений Microsoft, что формулы массива будут оставлены в Excel для совместимости.

На рисунке выше, представлен вариант из третьего пункта, поскольку ячейка с формулой находится на одной строке с массивом, на который ссылается, то возвращается значение из диапазона, если бы строки введенной формулы и исходного массива не пересеклись, мы бы получили сообщение об ошибке #ЗНАЧ!. Такая возможность называется пересечением и интересный факт, по сути 99% пользователей не использовали эту возможность, либо использовали не осознанно.

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

Почему так долго тестируют?

Окей, ну ввели эти динамические массивы, добавили новые формулы, которые используют возможности DAF, в чем заминка с тестированием?

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

А, поскольку, изменения коснулись автозаполнения, то использование различных  типов ссылок тоже следует пересмотреть — а это, на минуточку, основа основ.

Кто сможет пользоваться?

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

Ah, spoke too soon! — sounds like dynamic arrays will begin rolling out to standard 365 users this week on a rolling basis:

«We’re happy to announce that dynamic arrays will be generally available starting this week on Excel for the web. We will be rolling out to subsets of our users to continue to gather feedback and monitor quality as we strive to provide a great experience for our customers. With dynamic arrays, you can write one formula such as FILTER, SORT, or UNIQUE (among others) to get an array of values returned, rather than having to write one formula that returns only one value at a time.  Values from dynamic arrays will automatically “spill” or be placed in neighboring blank cells so that you get all the values you need from one formula.»

https://techcommunity.microsoft.com/t5/Excel-Blog/Excel-Announcements-Ignite-2019/ba-p/964482

The key benefit of Dynamic Arrays is the ability to work with multiple values at the same time in a formula. This is a big upgrade and welcome change. Dynamic Arrays solve some really hard problems in Excel, and will fundamentally change the way worksheets are designed. Once you see how they work, you’ll never want to go back.

Availability

Dynamic arrays and the new functions below are only available Excel 365 and Excel 2021. Excel 2019 and earlier do not offer dynamic array formulas. For convenience, I’ll use «Dynamic Excel» (Excel 365) and «Legacy Excel» (2019 or earlier) to differentiate versions below.

New functions

As part of the dynamic array update, Excel now includes 8 new functions which directly leverage dynamic arrays to solve problems that are traditionally hard to solve with conventional formulas. Click the links below for details and examples for each function:

Function Purpose
FILTER Filter data and return matching records
RANDARRAY Generate array of random numbers
SEQUENCE Generate array of sequential numbers
SORT Sort range by column
SORTBY Sort range by another range or array
UNIQUE Extract unique values from a list or range
XLOOKUP Modern replacement for VLOOKUP
XMATCH Modern replacement for the MATCH function

Video: New dynamic array functions in Excel (about 3 minutes).

As of January 2023, many more new functions have now been released to take advantage of the dynamic array engine. The complete list of new functions is: ARRAYTOTEXT, BYCOL, BYROW, CHOOSECOLS, CHOOSEROWS, DROP, EXPAND, FILTER, HSTACK, ISOMITTED, LAMBDA, LET, MAKEARRAY, MAP, RANDARRAY, REDUCE, SCAN, SEQUENCE, SORT, SORTBY, STOCKHISTORY, TAKE, TEXTAFTER, TEXTBEFORE, TEXTSPLIT, TOCOL, TOROW, UNIQUE, VALUETOTEXT, VSTACK, WRAPCOLS, WRAPROWS, XLOOKUP, and XMATCH.

Example

Before we get into the details, let’s look at a simple example. Below we are using the new UNIQUE function to extract unique values from the range B5:B15, with a single formula entered in E5:

=UNIQUE(B5:B15) // return unique values in B5:B15

UNIQUE function example

The result is a list of the five unique city names, which appear in E5:E9.

Like all formulas, UNIQUE will update automatically when data changes. Below, Vancouver has replaced Portland on row 11. The result from UNIQUE now includes Vancouver:

UNIQUE function example after change

Spilling — one formula, many values

In Dynamic Excel, formulas that return multiple values will «spill» these values directly onto the worksheet. This will immediately be more logical to formula users. It is also a fully dynamic behavior – when source data changes, spilled results will immediately update.

The rectangle that encloses the values is called the «spill range». You will notice that the spill range has special highlighting. In the UNIQUE example above, the spill range is E5:E10.

When data changes, the spill range will expand or contract as needed. You might see new values added, or existing values disappear. In this way, a spill range is a new kind of dynamic range.

In Legacy Excel, by contrast, you can see multiple results returned by array formula in the formula bar if you use F9 to inspect the formula. However, unless the formula is entered as a multi-cell array formula, only one value will display on the worksheet. This behavior has always made array formulas difficult to understand. Spilling makes array formulas more intuitive. 

Note: when spilling is blocked by other data, you’ll see a #SPILL error. Once you make room for the spill range, the formula will automatically spill.

Video: Spilling and the spill range

Spill range reference

To refer to a spill range, use a hash symbol (#) after the first cell in the range. For example, to reference the results from the UNIQUE function above use:

=E5# // reference UNIQUE results

This is the same as referencing the entire spill range, and you’ll see this syntax when you write a formula that refers to a complete spill range.

You can feed a spill range reference into other formulas directly. For example, to count the number of cities returned by UNIQUE, you can use:

=COUNTA(E5#) // count unique cities

Example of dynamic array spill range reference

When the spill range changes, the formula will reflect the latest data.

Massive simplification

The addition of new dynamic array formulas means certain formulas can be drastically simplified. Here are a few examples:

  • Extract and list unique values (before | after)
  • Count unique values (before | after)
  • Filter and extract records (before | after)
  • Extract partial matches (before | after)

The power of one

One of the most powerful benefits of the «one formula, many values» approach is less reliance on absolute or mixed references. As a dynamic array formula spills results onto the worksheet, references remain unchanged, but the formula generates correct results.

For example, below we use the FILTER function to extract records in group «A». In cell F5, a single formula is entered:

=FILTER(B5:D11,B5:B11="a") // references are relative

Dynamic array one formula only example

Notice both ranges are unlocked relative references, but the formula works perfectly.

This is a huge benefit for many users, because it makes the process of writing formulas so much simpler. For another good example, see the multiplication table below.

Chaining functions

Things get really interesting when you chain together more than one dynamic array function. Perhaps you want to sort the results returned by UNIQUE? Easy. Just wrap the SORT function around the UNIQUE function like this:

Example of UNIQUE and SORT together

As before, when source data changes, new unique results automatically appear, nicely sorted.

Native behavior

It’s important to understand that dynamic array behavior is a native and deeply integrated. When any formula returns multiple results, these results will spill into multiple cells on the worksheet. This includes older functions not originally designed to work with dynamic arrays.

For example, in Legacy Excel, if we give the LEN function a range of text values, we’ll see a single result. In Dynamic Excel, if we give the LEN function a range of values, we’ll see multiple results. This screen below shows the old behavior on the left and the new behavior on the right:

The LEN function with arrays - old and new

This is a huge change that can affect all kinds of formulas. For instance, the VLOOKUP function is designed to fetch a single value from a table, using a column index. However, in Dynamic Excel, if we give VLOOKUP more than one column index using an array constant like this:

=VLOOKUP("jose",F7:H10,{1,2,3},0)

VLOOKUP will return multiple columns:

Multiple results with VLOOKUP and dynamic arrays

In other words, even though VLOOKUP was never designed to return multiple values, it can now do so, thanks to the new formula engine in Dynamic Excel.

All formulas

Finally, note that dynamic arrays work with all formulas not just functions. In the example below cell C5 contains a single formula:

=B5:B14*C4:L4

The result spills into a 10 by 10 range that includes 100 cells:

Dynamic array multiplication table

If the numbers in the ranges B5:B14 and C4:L4 where are themselves dynamic arrays (i.e. created with the SEQUENCE function), the spill reference operator can be used like this:

=B5#*C4# // returns same 10 x 10 array

Arrays go mainstream

With the rollout of dynamic arrays, the word «array» is going to pop up much more often. In fact, you may see «array» and «range» used almost interchangeably. You’ll see arrays in Excel enclosed in curly braces like this:

{1,2,3} // horizontal array
{1;2;3} // vertical array

Array is a programming term that refers to a list of items that appear in a particular order. The reason arrays come up so often in Excel formulas is that arrays can perfectly express the values in a range of cells.

Video: What is an array?

Array operations become important

Because Dynamic Excel formulas can easily work with multiple values, array operations will become more important. The term «array operation» refers to an expression that runs a logical test or math operation on an array. For example, the expression below tests if values in B5:B9 are equal to «ca»

=B5:B9="ca" // state = "ca"

Array operation example test a

because there are 5 cells in B5:B9, the result is 5 TRUE/FALSE values in an array:

{FALSE;TRUE;FALSE;TRUE;TRUE}

The array operation below checks for amounts greater than 100:

=C5:C9>100 // amounts > 100

Array operation example test b

The final array operation combines test A and test B in a single expression:

=(B5:B9="ca")*(C5:C9>100) // state = "ca" and amount > 100

Array operation example test a and b

Note: Excel automatically coerces the TRUE and FALSE values to 1 and 0 during the math operation.

To bring this back to dynamic array formulas in Excel, the example below demonstrates how we can use exactly the same array operation inside the FILTER function as the include argument:

Array operation with FILTER function

FILTER returns the two records where state = «ca» and amount > 100.

For a demonstration, see: How to filter with two criteria (video).

New and old array formulas

In Dynamic Excel, there is no need to enter array formulas with control + shift + enter. When a formula is created, Excel checks if the formula might return multiple values. If so, it will automatically be saved as a dynamic array formula, but you will not see curly braces. The example below shows a typical array formula entered in Dynamic Excel:

Basic array formula in Legacy Excel

If you open the same formula in Legacy Excel, you’ll see curly braces:

Basic array formula in dynamic Excel

Going the other direction, when a «traditional» array formula is opened in Dynamic Excel, you will see the curly braces in the formula bar.  For example, the screen below shows a simple array formula in Legacy Excel:

Simple array formula with curly braces visible

However, if you re-enter the formula with no changes, the curly braces are removed, and the formula returns the same result:

Simple array formula with curly braces not visible

The bottom line is that array formulas entered with control + shift + enter (CSE) still work to maintain compatibility, but you shouldn’t need to enter array formulas with CSE in Dynamic Excel.

The @ character

With the introduction of dynamic arrays, you’re going to see the @ character appear more often in formulas. The @ character enables a behavior known as «implicit intersection». Implicit intersection is a logical process where many values are reduced to one value. 

In Legacy Excel, implicit intersection is a silent behavior used (when necessary) to reduce multiple values to a single result in one cell. In Dynamic Excel, it is not typically needed, since multiple results can spill onto the worksheet. When it is needed, implicit intersection is invoked manually with the @ character.

When opening spreadsheets created in an older version of Excel, you may see the @ character added automatically to existing formulas that have the potential to return many values. In Legacy Excel, a formula that returns multiple values won’t spill on the worksheet. The @ character forces this same behavior in Dynamic Excel so that the formula behaves the same way and returns the same result as it did in the original Excel version.

In other words, the @ is added to prevent an older formula from spilling multiple results onto the worksheet. Depending on the formula, you may be able to remove the @ character and the behavior of the formula will not change. 

Summary

  • Dynamic Arrays will make certain formulas much easier to write.
  • You can now filter matching data, sort, and extract unique values easily with formulas.
  • Dynamic Array formulas can be chained (nested) to do things like filter and sort.
  • Formulas that return more than one value will automatically spill.
  • It is not necessary to use Ctrl+Shift+Enter to enter an array formula.
  • Dynamic array formulas are only available in Excel 365. 

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