Динамические массивы, функции и формулы Excel

  • Поделись Этим
Michael Brown

Оглавление

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

Формулы массивов Excel всегда считались прерогативой гуру и экспертов по формулам. Если кто-то говорит: "Это можно сделать с помощью формулы массива", немедленная реакция многих пользователей - "А разве нет другого способа?".

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

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

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

    За более чем 30-летнюю историю Microsoft Excel претерпел множество изменений, но одно оставалось неизменным - одна формула, одна ячейка. Даже при использовании традиционных формул массивов необходимо было вводить формулу в каждую ячейку, где вы хотите, чтобы появился результат. С динамическими массивами это правило больше не верно. Теперь любая формула, возвращающая массив значений, автоматически перетекает в соседние ячейки.ячейки, без необходимости нажимать Ctrl + Shift + Enter или делать какие-либо другие движения. Другими словами, работать с динамическими массивами становится так же просто, как и с отдельной ячейкой.

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

    В додинамических версиях Excel приведенная ниже формула будет работать только для первой ячейки, если только вы не введете ее в несколько ячеек и не нажмете Ctrl + Shift + Enter, чтобы явно сделать ее формулой массива:

    =A3:A5*B2:D2

    Теперь посмотрите, что произойдет, если использовать ту же формулу в Excel 365. Вы вводите ее только в одну ячейку (в нашем случае B3), нажимаете клавишу Enter... и результаты сразу заполняют всю ярость:

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

    Важно отметить, что недавнее обновление - это не просто новый способ работы с массивами в Excel. На самом деле, это революционное изменение всего механизма вычислений. Благодаря динамическим массивам в библиотеку функций Excel была добавлена куча новых функций, а существующие стали работать быстрее и эффективнее. В конечном счете, новые динамические массивы должны полностьюзаменить старомодные формулы массивов, которые вводятся с помощью сочетания клавиш Ctrl + Shift + Enter.

    Доступность динамических массивов Excel

    Динамические массивы были представлены на конференции Microsoft Ignite в 2018 г. и выпущены для подписчиков Office 365 в январе 2020 г. В настоящее время они доступны в Подписки на Microsoft 365 и Excel 2021.

    Динамические массивы поддерживаются в этих версиях:

    • Excel 365 для Windows
    • Excel 365 для Mac
    • Excel 2021
    • Excel 2021 для Mac
    • Excel для iPad
    • Excel для iPhone
    • Excel для планшетов Android
    • Excel для телефонов Android
    • Excel для Интернета

    Функции динамических массивов Excel

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

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

    Ниже вы найдете краткое описание работы каждой функции, а также ссылки на подробные руководства:

    1. UNIQUE - извлекает уникальные элементы из ряда ячеек.
    2. ФИЛЬТР - фильтрует данные по заданным вами критериям.
    3. SORT - сортирует диапазон ячеек по заданному столбцу.
    4. SORTBY - сортирует диапазон ячеек по другому диапазону или массиву.
    5. RANDARRAY - генерирует массив случайных чисел.
    6. SEQUENCE - генерирует список последовательных номеров.
    7. TEXTSPLIT - разделяет строки по заданному разделителю на столбцы или/и строки.
    8. TOCOL - преобразование массива или диапазона в один столбец.
    9. TOROW - преобразование диапазона или массива в одну строку.
    10. WRAPCOLS - преобразует строку или столбец в двумерный массив на основе заданного количества значений в строке.
    11. WRAPROWS - переформирование строки или столбца в двумерный массив на основе заданного количества значений в столбце.
    12. TAKE - извлекает заданное количество смежных строк и/или столбцов из начала или конца массива.

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

    XLOOKUP - более мощный преемник VLOOKUP, HLOOKUP и LOOKUP, который может искать как в столбцах, так и в строках и возвращать несколько значений.

    XMATCH - это более универсальный преемник функции MATCH, который может выполнять вертикальный и горизонтальный поиск и возвращать относительную позицию указанного элемента.

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

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

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

    Пример 1. Новая функция динамического массива

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

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

    =UNIQUE(B2:B10)

    Вы вводите формулу в любую пустую ячейку и нажимаете Enter. Excel немедленно извлекает все различные значения в списке и выводит их в диапазон ячеек, начиная с ячейки, в которую вы ввели формулу (в нашем случае D2). При изменении исходных данных результаты пересчитываются и обновляются автоматически.

    Пример 2. Объединение нескольких функций динамического массива в одной формуле

    Если нет возможности выполнить задачу с помощью одной функции, соедините несколько! Например, чтобы отфильтровать данные по условию и расположить результаты в алфавитном порядке, оберните функцию SORT вокруг FILTER следующим образом:

    =SORT(FILTER(A2:C13, B2:B13=F1, "Нет результатов"))

    Где A2:C13 - исходные данные, B2:B13 - значения для проверки, а F1 - критерий.

    Пример 3. Использование новых функций динамических массивов вместе с существующими

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

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

    =COUNTA(UNIQUE(B2:B10))

    Пример 4. Существующие функции поддерживают динамические массивы

    Если вы предоставите диапазон ячеек функции TRIM в более старой версии, такой как Excel 2016 или Excel 2019, она вернет единственный результат для первой ячейки:

    =TRIM(A2:A6)

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

    Пример 5. Формула VLOOKUP для возврата нескольких значений

    Как всем известно, функция VLOOKUP предназначена для возврата одного значения на основе указанного вами индекса столбца. Однако в Excel 365 вы можете предоставить массив номеров столбцов, чтобы вернуть совпадения из нескольких столбцов:

    =VLOOKUP(F1, A2:C6, {1,2,3}, FALSE)

    Пример 6. Простая формула TRANSPOSE

    В ранних версиях Excel синтаксис функции ТРАНСПОЗИЦИЯ не оставлял места для ошибок. Чтобы повернуть данные в рабочем листе, нужно было подсчитать исходные столбцы и строки, выделить такое же количество пустых ячеек, но изменить ориентацию (умопомрачительная операция в огромных рабочих листах!), ввести формулу ТРАНСПОЗИЦИЯ в выделенном диапазоне и нажать Ctrl + Shift + Enter для правильного завершения. Фух!

    В динамическом Excel достаточно ввести формулу в самую левую ячейку выходного диапазона и нажать Enter:

    =TRANSPOSE(A1:B6)

    Готово!

    Диапазон разлива - одна формула, несколько ячеек

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

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

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

    Примечание. Если какие-то другие данные блокируют диапазон разлива, возникает ошибка #SPILL. Как только мешающие данные будут удалены, ошибка исчезнет.

    Для получения дополнительной информации см. раздел Диапазон разлива Excel.

    Ссылка на диапазон разлива (символ #)

    Чтобы сослаться на диапазон разлива, поставьте хэш-тег или символ фунта (#) после адреса верхней левой ячейки в диапазоне.

    Например, чтобы узнать, сколько случайных чисел сгенерировано формулой RANDARRAY в A2, поставьте ссылку на диапазон разлива в функцию COUNTA:

    =COUNTA(A2#)

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

    =SUM(A2#)

    Советы:

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

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

      В динамическом массиве Excel есть еще одно существенное изменение в языке формул - введение символа @, известного как неявный оператор пересечения .

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

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

      Чтобы увидеть, как это работает на практике, пожалуйста, посмотрите на скриншот ниже.

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

      =UNIQUE(A2:A9)

      В E2 функция снабжена префиксом @, который вызывает неявное пересечение. В результате возвращается только первое уникальное значение:

      =@UNIQUE(A2:A9)

      Для получения дополнительной информации см. раздел Неявное пересечение в Excel.

      Преимущества динамических массивов Excel

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

      Простой и более мощный

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

      • Извлечение уникальных ценностей: традиционные формулы
      • Подсчет уникальных и отличных значений: традиционные формулы
      • Сортировка столбцов по алфавиту: традиционные формулы

      Родина для всех формул

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

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

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

      Относительные и абсолютные ссылки менее важны

      Благодаря подходу "одна формула, много значений", нет необходимости фиксировать диапазоны знаком $, поскольку технически формула находится только в одной ячейке. Поэтому, по большей части, не имеет значения, использовать ли абсолютные, относительные или смешанные ссылки на ячейки (что всегда было источником путаницы для неопытных пользователей) - формула динамического массива в любом случае даст правильные результаты!

      Ограничения динамических массивов

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

      Результаты не могут быть отсортированы обычным способом

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

      Невозможно удалить ни одно значение в диапазоне разлива

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

      Не поддерживаются в таблицах Excel

      Эта функция (или ошибка?) является довольно неожиданной. Формулы динамических массивов не работают внутри таблиц Excel, только внутри обычных диапазонов. Если вы попытаетесь преобразовать диапазон разлива в таблицу, Excel сделает это. Но вместо результатов вы увидите только ошибку #SPILL!

      Не работают с Excel Power Query

      Результаты формул динамических массивов не могут быть загружены в Power Query. Например, если вы попытаетесь объединить два или более диапазонов разлива вместе с помощью Power Query, это не сработает.

      Динамические массивы в сравнении с традиционными формулами массивов CSE

      С введением динамических массивов мы можем говорить о двух типах Excel:

      1. Динамический Excel который полностью поддерживает динамические массивы, функции и формулы. В настоящее время это только Excel 365 и Excel 2021.
      2. Наследие Excel , он же традиционный или додинамический Excel, где поддерживаются только формулы массива Ctrl + Shift + Enter. Это Excel 2019, Excel 2016, Excel 2013 и более ранние версии.

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

      Вот наиболее существенные различия:

      • Динамическая формула массива вводится в одну ячейку и завершается обычным нажатием клавиши Enter. Для завершения старой формулы массива необходимо нажать Ctrl + Shift + Enter .
      • Новые формулы массивов автоматически распространяются на многие ячейки. Формулы CSE должны быть скопированы в диапазон ячеек, чтобы вернуть несколько результатов.
      • Вывод формул динамического массива автоматически изменяет размер при изменении данных в исходном диапазоне. Формулы CSE усекают вывод, если область возврата слишком мала, и возвращают ошибки в дополнительных ячейках, если область возврата слишком велика.
      • Формулу динамического массива можно легко редактировать в одной ячейке. Чтобы изменить формулу CSE, необходимо выделить и отредактировать весь диапазон.
      • Невозможно удалять и вставлять строки в диапазоне формул CSE - сначала нужно удалить все существующие формулы. С динамическими массивами вставка или удаление строк не является проблемой.

      Обратная совместимость: динамические массивы в устаревшем Excel

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

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

      Например, вот как формула UNIQUE отображается в разделе Excel 2013 :

      Большинство формул динамических массивов (но не все!) будут продолжать отображать свои результаты в старом Excel, пока вы не внесете в них какие-либо изменения. Редактирование формулы немедленно нарушает ее и отображает одно или несколько значений ошибки #NAME?

      Формулы динамического массива Excel не работают

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

      #SPILL! ошибка

      Когда динамический массив возвращает несколько результатов, но что-то блокирует диапазон разлива, возникает ошибка #SPILL!

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

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

      • Ошибка Excel #SPILL - причины и способы устранения
      • Как исправить ошибку #SPILL! с помощью VLOOKUP, INDEX MATCH, SUMIF

      #REF! ошибка

      Из-за ограниченной поддержки внешних ссылок между рабочими книгами динамические массивы требуют, чтобы оба файла были открыты. Если исходная рабочая книга закрыта, отображается ошибка #REF!

      #NAME? ошибка

      Ошибка #NAME? возникает при попытке использовать функцию динамического массива в старой версии Excel. Помните, что новые функции доступны только в Excel 365 и Excel 2021.

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

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

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.