Excel

Массивы excel: что такое, формула, как сделать / Skillbox Media

Содержание

Программы и макросы Excel в категории Массивы

Универсальные функции VBA для обработки одномерных и двумерных массивов, сравнения массивов и поиска в них

  • Быстрый поиск в двумерном массиве

    В данной статье показаны 2 способа быстрого поиска значений в двумерных массивах. Поскольку искомое значение может встретиться в нескольких строках обрабатываемого двумерного массива, оба способа получают на выходе отфильтрованный двумерный массив. Способы формирования отфильтрованных массивов — разные: первый способ использует функцию ArrAutofilterEx второй способ — функцию …

  • Сортировка двумерного массива на VB (VBA)

    Сортировка двумерного массива по нулевому столбцу Public Function CoolSort(SourceArr As Variant) As Variant ‘ сортировка двумерного массива по нулевому столбцу Dim Check As Boolean, iCount As Integer, jCount As Integer, nCount As Integer ReDim tmpArr(UBound(SourceArr, 2)) As Variant Do Until Check Check = True For iCount = LBound(SourceArr, 1) To UBound(SourceArr,.

    ..

  • Сбор данных из множества текстовых файлов с разделителями

    К примеру, есть у вас несколько десятков (или сотен) текстовых файлов с подобным содержимым: (количество файлов, и количество строк данных в каждом файле не ограничено) 1c04;1J0-698-151-G;1 комплект тормозных накладок;1J0698151G;1J0698151G;5;1 1c04;1H0698151A;Тормозные колодки;1H0698151A;1H0698151A;1;1 1c04;1K0-698-151-B;Тормозные колодки;1K0698151B;1K0698151B;2;1 А надо из всего этого…

  • Загрузка файла CSV на лист Excel

    Надстройка предназначена для облегчения импорта данных в Excel из текстовых файлов с разделителями (например, из CSV) Пока во вложении — обычный файл Excel с нужными макросами, надстройку выложу позже В надстройке применена функция получения ссылки на заданную пользователем ячейку. Основой для надстройки послужила функция загрузки CSV файла в двумерный массив Использовать функции…

  • Надстройка для математического анализа в Excel

    Надстройка с несколькими пользовательскими функциями вычислительной математики. Надстройка предназначена для тех пользователей, кто хочет: интерполировать табличные данные; находить корни уравнения; вычислять производные; численно интегрировать; аппроксимировать экспериментальные данные   Внимание: 21 марта 2020 года выложена новая версия надстройки. Во вложении к статье — надстройка…

  • Чтение CSV файла в двумерный массив

    Функция TextFile2Array предназначена для преобразования файла CSV в двумерный массив Очень часто при работе с текстовыми файлами (и, в частности, с файлами CSV) приходится их загружать на лист Excel, предварительно производя фильтрацию данных в этом файле. Чтобы упростить весь процесс — от выбора файла CSV в диалоговом окне, до разбиения загруженного из файла текста в двумерный массив, и была…

  • Преобразование массива в XML (экспорт таблицы в файл XML)

    Функция Array2XML формирует из исходной таблицы объект типа DOMDocument, который можно выгрузить в XML-файл одной строкой кода (метод Save) Sub XMLExport() Dim Заголовок As Range, Данные As Range Set Заголовок = Range(«a1:f1») Set Данные = Range([A2], Range(«A» & Rows. Count).End(xlUp)).Resize(, Заголовок.Columns.Count)   arrHeaders = Application….

  • Разбиение строк двумерного массива — по одной строке для каждого значения

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

  • Функция получения массива данных из видимых строк

    Функция предназначена для получения двумерного массива данных из видимых строк листа Excel.   Например, нас интересует массив, начиная со второй строки, шириной 5 столбцов. Если все строки на листе — видимые, то все делается просто, одной строкой кода: arr = Range(Range(«a2»), Range(«a» & Rows. Count).End(xlUp)).Resize(, 5).Value   А если на листе включен…

  • Загрузка данных из закрытой книги Excel в двумерный массив

    Sub ПримерИспользования() ‘ задаём полный путь к обрабатываемому файлу ПутьКФайлу$ = ThisWorkbook.Path & «\» & «Contract.XLS»   Application.ScreenUpdating = False ‘ отключаем обновление экрана arr = LoadArrayFromWorkbook(ПутьКФайлу$, «a2», 30) ‘ загружаем данные ‘ выводим результаты в окно Immediate Debug.Print «…

  • Выборка случайных строк из двумерного массива

    Функция RandomRowsFromArray предназначена для выборки из двумерного массива случайных строк. К примеру, исходный массив (таблица) имеет размер 1000*20 (1000 строк, и 20 столбцов) Нам требуется выбрать из этой таблицы, случайным образом, 50 строк (получив, таким образом, таблицу размерами 50*20) Кроме того, необходимо, чтобы при каждом новом запуске макроса, в выборку попадали новые строки.

  • Разбиение двумерного массива на несколько массивов, группируя строки по заданному столбцу

    Функция принимает в качестве параметра arr двумерный массив, и разбивает его на несколько массивов, группируя строки по значению столбца SplitColumn& Сколько есть уникальных значений в столбце SplitColumn&, удовлетворяющих маске Mask$, — столько двумерных массивов будет возвращено функцией в виде коллекции Например, если есть исходный массив размерами 100*5, в котором во втором столбце…

  • Обработка котировок (тиков) в формате CSV

    Программа служит для преобразования тиковых значений котировок в свечи необходимого периода Исходный файл в формате .csv получается в результате выгрузки (экспорта) котировок с сайта www.finam.ru (Фьючерсы ФОРТС), и содержит большое количество строк (записей) — около 1 миллиона за 1 день. В исходном файле CSV имеется таблица  со следующими столбцами: <TICKER> <PER> <DATE.

    ..

  • Расчёт доходности портфелей методом Монте-Карло

    Программа предназначена для анализа ожидаемой доходности различных портфелей (рассматриваются всевозможные комбинации проектов) При помощи формул типа =СЛЧИС() на листах с характеристиками проектов генерируются различные комбинации исходных значений, на основании которых формулами рассчитывается доходность проекта. Методом Монте-Карло формируются массивы значений (по одному массиву для…

  • Формирование и рассылка случайного списка торговых точек

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

  • Сохранение двумерного массива в файл

    Функция предназначена для сохранения двумерного массива в файл формата XLS Sub SaveArray(ByVal Arr, ByVal ColumnNames, ByVal DocName$) ‘ Получает двумерный массив Arr с данными, и массив заголовков столбцов ColumnNames. ‘ Создаёт новый файл в подпапке СФОРМИРОВАННЫЕ ДОКУМЕНТЫ с именем DocName$ On Error Resume Next   ‘ создаём подпапку (там же, где текущий файл Excel)…

Выполнять несколько расчетов с помощью формул массива Excel

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

Эти инструкции относятся к Excel 2019, 2016, 2013, 2010 и Excel для Office 365.

Что такое формулы массива?

Формулы массива похожи на обычные. Oни:

  • Начните со знака равенства ( = )
  • Используйте тот же синтаксис, что и обычные формулы
  • Используйте те же математические операторы
  • Следуйте тому же порядку работы

Однако формулы массивов заключены в фигурные скобки {}. И вы не можете просто ввести их; Вы должны добавить их, нажав Ctrl , Shift , , и введите ключи после ввода формулы в ячейку или ячейки. По этой причине формулу массива иногда называют формулой CSE в Excel.

Каждый раз, когда вы редактируете формулу массива, фигурные скобки исчезают. Чтобы вернуть их, снова нажмите клавиши Ctrl , Shift и Enter .

Существует два основных типа формул массива:

  • Формулы массива из одной ячейки, которые выполняют несколько вычислений в одной ячейке листа
  • Формулы из нескольких ячеек массива, которые находятся в нескольких ячейках листа

Как создать формулу массива

  1. Введите формулу в ячейку.

  2. Удерживайте клавиши Ctrl и Shift на клавиатуре.

  3. Нажмите и отпустите клавишу Enter, чтобы создать формулу массива.

  4. Отпустите  клавиши Ctrl и Shift .

  5. Если все сделано правильно, фигурные скобки будут окружать формулу.

Формулы для отдельных ячеек

Формула массива одной ячейки использует функцию, такую ​​как SUM , AVERAGE или COUNT , для объединения вывода формулы массива из нескольких ячеек в одно значение в одной ячейке. Ниже приведен пример:

{= СУММ (А1: А2 * В1: В2)}

Приведенная выше формула складывает произведение A1 * B1 и A2 * B2 , а затем возвращает один результат в одной ячейке на листе. Другой способ представления этой формулы:

= (А1 * В1) + (А2 * В2)

Multi-Cell Array Formulas

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

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

{= А1: А2 * В1: В2}

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

  • Данные в A1 умножаются на данные в B1 , а результаты появляются в ячейке C1 .
  • Данные в A2 умножаются на данные в B2 , а результаты появляются в ячейке C2 .

Формулы массивов и функции Excel

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

Вы также можете расширить полезность многих функций, таких как INDEX и MATCH или MAX и IF , используя их вместе в формуле массива.

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

Формулы массива с одной ячейкой обычно сначала выполняют вычисление с несколькими ячейками, а затем используют функцию, такую ​​как AVERAGE или SUM, чтобы объединить выходные данные массива в один результат.

Игнорировать значения ошибок при поиске данных

Эта формула массива использует функции AVERAGE , IF и ISNUMBER, чтобы найти среднее значение для существующих данных , игнорируя значения ошибок, такие как # DIV / 0! и #NAME ?

Подсчет ячеек данных

Используйте SUM и  ПЧ  функции в формуле массива для подсчета клеток данных , которые соответствуют одному из нескольких условий; Этот метод отличается от использования  функции COUNTIFS в Excel , которая требует, чтобы все установленные условия были выполнены до того, как он подсчитает ячейку.

Найти наибольшее положительное или отрицательное число

Этот пример сочетает в себе MAX  функции и  ПЧ функции в формуле массива , который будет найти наибольшее или максимальное значение для диапазона данных , когда она отвечает определенным критериям. Здесь наибольшее значение представляет самое медленное время.

Найдите наименьшее положительное или отрицательное число

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

Найти среднее или среднее значение

Функция MEDIAN в Excel находит среднее значение для списка данных. Комбинируя его с функцией IF в формуле массива, вы можете найти среднее значение для разных групп связанных данных.

Создайте формулу поиска с несколькими критериями

Эта формула массива включает в себя вложение функций MATCH и INDEX для поиска конкретной информации в базе данных.

Сделать левую формулу поиска

ВПР  функция обычно только поиск данных , расположенных в колонках справа, но, комбинируя его с ВЫБРАТЬ  функции , вы можете создать левую формулу подстановки , которая будет искать столбцы данных слева от Lookup_Value аргумента.

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

Преимущество массивов Excel

Перейти к основному содержанию

Илан Лотвин

Илан Лотвин

руководитель отдела автоматизации маркетинга и данных | Бизнес-аналитик | Консультант по автоматизации | Python, SQL, Excel, VBA | Цена за конверсию (Иллинойс)

Опубликовано 16 августа 2021 г.

+ Подписаться

Одной из любимых тем в Excel являются формулы массива.

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

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

Сегодня (из-за изменений в механизме вычислений Microsoft excel) Excel позволяет использовать одну формулу для заполнения нескольких ячеек — динамические массивы

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

Если вы ежедневно используете таблицы Excel/Google, выполняете расчеты/анализируете различные столбцы, знание формул массива выведет вас на новый уровень!

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

Предположим, вы хотите рассчитать общий объем продаж для каждого автомобиля и общую сумму.

Большинство пользователей Excel создали формулу « =F10*G10 » в ячейке h20 и перетащили ее вниз.

Перетаскивание вниз означает:

Дополнительный объем памяти =

Размер файла больше
  1. Склонен к ошибкам — Любой пользователь может изменить значения/формулы в любом месте столбца, и это будет очень сложно обнаружить.

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

  1. У нас есть только одна формула, расположенная в ячейке h20
  2. указание на ошибку (например, #SPILL- см. пример)

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

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

Резюме вышеприведенных преимуществ формул динамического массива (среди многих других):

  • Непротиворечивость    Если щелкнуть любую ячейку от h20 вниз, вы увидите ту же формулу. Эта согласованность может помочь обеспечить большую точность.
  • Безопасность    Вы не можете перезаписать компонент формулы массива с несколькими ячейками. Например, щелкните ячейку h21 и нажмите клавишу DELETE. Excel не изменит вывод массива. Чтобы изменить его, вам нужно выбрать верхнюю левую ячейку в массиве или ячейку h20.
  • Файлы меньшего размера    Часто можно использовать одну формулу массива вместо нескольких промежуточных формул. Например, в примере с продажами автомобилей для вычисления результатов в столбце E используется одна формула массива. Если бы вы использовали стандартные формулы, такие как =F10*G10, F11*G11, F12*G12 и т.  д., вы использовали бы 11 различных формул. для расчета тех же результатов. Это не имеет большого значения, но что, если у вас есть тысячи строк? Тогда это может иметь большое значение.
  • Эффективность    Функции массива могут быть эффективным способом построения сложных формул. Формула массива =СУММ(F10:F19*G10:G19) аналогично этому: =СУММ(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18, Ф19*Г19).
  • Переполнение    Формулы динамического массива автоматически переносятся в выходной диапазон. Если ваши исходные данные находятся в таблице Excel, ваши формулы динамического массива будут автоматически изменять размер при добавлении или удалении данных.
  • #РАЗЛИВ! ошибка    Динамические массивы представили #SPILL! ошибка, указывающая на то, что предполагаемый диапазон разлива по какой-то причине заблокирован. Когда вы устраните засор, формула автоматически прольется.

Дополнительный вариант использования динамических массивов (см. пример).

Предположим, вы хотите просуммировать общий объем продаж для каждого торгового представителя (столбцы A и B).

Раньше вы применяли формулу Sumif и перетаскивали ее вниз (столбец K).

Благодаря динамическому массиву, встроенному в функцию Sumif, вы можете избежать ошибок (формула находится только в одной ячейке) и, конечно же, уменьшить размер файла (ячейка E3)

На веб-сайте Microsoft есть отличная документация и пример рабочей тетради, которую можно скачать и попрактиковаться:

https://support.microsoft.com/en-us/office/guidelines-and-examples-of-array-formulas-7d94a64e-3ff3-4686-9372-ecfd5caa57c7

 Если у вас есть вопросы или комментарии.

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

Удачи.

 

  • Регулярные выражения в Excel

    30 окт.
    2021 г.

  • Макросы Excel для бизнеса

    27 окт. 2021 г.

  • Автоматизация электронной почты Outlook

    11 окт. 2021 г.

  • Макросы Excel для бизнеса

    6 окт. 2021 г.

  • Бизнес-решение — импорт имен файлов (макрос Excel)

    31 августа 2021 г.

Другие также смотрели

Исследуйте темы

Работа с динамическими массивами Excel


Сообщество Excel было в восторге от динамических массивов с тех пор, как Microsoft выпустила общий выпуск в январе 2020 года. 

Динамические массивы Excel изменили способ использования всех функций и формул в Excel в лучшую сторону. Для простоты мы будем использовать «Dynamic Excel» для обозначения новой среды и «Pre-Dynamic Excel» для описания предыдущего поведения Excel.

Что такое «динамический массив» в Excel?

Чтобы понять динамические массивы, нам нужно понять, как работают формулы в Pre-Dynamic Excel. Вообще говоря, одна формула возвращает вывод в одну ячейку. Когда формулы ссылались на диапазон, они по-прежнему были запрограммированы на возврат одного значения для каждой записи. Даже кажущееся исключение — формулы CSE или массива (см. ниже) — требовало дополнительных знаний о размере выходного диапазона.

В Dynamic Excel Excel автоматически выводит многозначный динамический диапазон, если это результат вашей формулы. Хорошим примером, иллюстрирующим разницу между Pre-Dynamic и Dynamic Excel, является функция ЧАСТОТА.


Загрузите бесплатный файл практики!

Используйте этот бесплатный файл Excel, чтобы практиковаться вместе с учебным пособием.

Введите адрес электронной почты


Control+Shift+Enter (CSE) и динамический массив

FREQUENCY — это функция массива . Для любой версии до Excel 365 это означает, что вам придется сначала выделить диапазон ячеек, в котором будет отображаться результирующий список. Затем введите формулу, используя синтаксис функции ЧАСТОТА.

Важно, чтобы вы не нажимали Enter. Нажмите CTRL+SHIFT+ВВОД. Это позволит Excel узнать, что вы вводите формулу массива. Excel вставляет фигурные скобки вокруг формулы. Это напомнит вам, что это было введено как формула массива.

Если у вас установлена ​​текущая версия Microsoft 365, Excel распознает ЧАСТОТУ как функцию массива. Поскольку Excel 365 работает в среде динамического массива, вы можете просто ввести формулу в первую ячейку диапазона, который вы хотите использовать в качестве выходного диапазона. Затем нажмите клавишу ВВОД, как обычно, и результаты будут отображаться в нескольких ячейках.

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

  =B3:B6*{1.3,1.6} 
 

Фигурные скобки вокруг констант массива вводятся вручную и интерпретируются Excel как одномерный вертикальный массив. Это не ново. Однако возможность слить результаты без ввода формулы с помощью Control+Shift+Enter есть. По общему признанию, вводить формулы CSE всегда было немного неудобно.

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

Доступность в версиях Excel

При всей шумихе вокруг динамических массивов Excel вы, вероятно, захотите узнать, о чем идет речь. Вот несколько вещей, о которых следует помнить:

  1. Динамические массивы недоступны в версиях до Excel 365, поэтому, к сожалению, они недоступны в Excel 2019.
  2. Есть восемь новых встроенных функций динамического массива.
  3. Функции и формулы динамических массивов также доступны в Excel Online.

Возможности

В Dynamic Excel есть три особенно заметных особенности: автоматическое поведение сброса, оператор диапазона сброса и оператор неявного пересечения.

1.

Поведение при сбросе

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

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

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

Как и в формулах CSE до Dynamic Excel, редактируется только первая ячейка в области разлива. Формулы в других ячейках отображаются серым цветом и не могут быть изменены. Любая попытка изменить «фантомные» ячейки в пределах диапазона разлива уничтожит диапазон и приведет к ошибке #SPILL! ошибка.

2. Оператор диапазона сброса

В Excel введен оператор диапазона сброса , #, для обозначения выходных данных массива сброса. Например, D2# относится к диапазону сброса, начинающемуся с ячейки D2, которая была заполнена с использованием формулы динамического массива UNIQUE(B2:B7). Формула в ячейке E2 ссылается на значения в ячейке D2:D5 с выражением D2# .

  =СЧЁТЕСЛИ(B2:B7,D2#)  

3. Неявный оператор пересечения

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

В приведенном ниже примере в Pre-Dynamic Excel вводится следующая формула.

  =A4:A8/СУММ($A$4:$A$8) 
 

Поскольку в этой среде одна формула предназначена для вывода в одну ячейку, Pre-Dynamic Excel не может перенести результаты в ячейки B4:B8 и должен решить, какое значение вернуть в ячейку, в которую была введена формула. Хотя символ @ не виден, Excel использует молчаливое неявное пересечение в фоновом режиме, чтобы вернуть значение, используя ячейку в той же строке или столбце, что и формула.

Благодаря возможности возвращать несколько значений в Dynamic Excel, эта же формула автоматически распространяет результаты в диапазоне B4:B8.

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

Например, на изображении ниже массив h4:I6 использует функцию СОРТИРОВКИ для сортировки продаж в регионах от большего к меньшему, а не в алфавитном порядке.

  =СОРТИРОВКА(E3:F6,2,-1)  

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

  =@SORT(E3:F6,2,-1)  

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

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

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

  • ФИЛЬТР — фильтровать записи по критериям.
  • RANDARRAY — генерирует случайный список или массив чисел.
  • ПОСЛЕДОВАТЕЛЬНОСТЬ — создать последовательный список или массив чисел.
  • SORT — сортировка списка или массива по столбцу или строке в этом массиве.
  • SORTBY — сортировать список или массив по другому списку или массиву.
  • UNIQUE — извлечь уникальные значения из списка.
  • XLOOKUP — гибкий поиск, возвращающий соответствующие значения в списке или массиве.
  • XMATCH — гибкий поиск, возвращающий относительное положение значений в списке или массиве.

Объединение функций динамического массива

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

Пример 1 — СОРТИРОВКА и ФИЛЬТР

  SORT(массив, [sort_index], [sort_order], [by_col])  
  ФИЛЬТР(массив, включить, [if_empty])  

В этой комбинации функция СОРТИРОВКА оборачивает функцию ФИЛЬТР для сортировки результатов отфильтрованного массива.

  =СОРТИРОВКА(ФИЛЬТР(A2:D12,B2:B12="бутерброд"),4)  

Формула в ячейке F2 фильтрует массив A2:D12 путем поиска записей с категорией «бутерброд». Функция SORT сортирует этот массив по цене, 4-й столбец.

Пример 2 — СОРТИРОВКА и УНИКАЛЬНОСТЬ

  SORT(массив, [индекс_сортировки], [порядок_сортировки], [по_столбцу])  
  UNIQUE(массив, [по_столбцу], [exactly_once])  

Используйте СОРТИРОВКУ вокруг функции UNIQUE для извлечения уникальных значений в массиве и последующей сортировки записей, соответствующих определенному критерию.

Приведенная выше функция UNIQUE возвращает уникальные значения в диапазоне B3:B8, а функция SORT использовалась для их сортировки в алфавитном порядке. Результаты были автоматически разлиты в диапазоне E3:E6.

Существуют и другие опции для функций UNIQUE и SORT.

Пример 3 — COUNTA и UNIQUE

  СЧЁТ(значение1, [значение2]…)  
  UNIQUE(array, [by_col], [exactly_once])  

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

  =COUNTA(UNIQUE(База данных[Имя группы]))  

Пример 4 — ФИЛЬТР и ФИЛЬТР

  ФИЛЬТР(массив, включить, [if_empty])  

Вы даже можете вложить функцию ФИЛЬТР в другой ФИЛЬТР, чтобы вернуть выбранные столбцы отфильтрованных записей!

  =ФИЛЬТР(ФИЛЬТР(Меню,Меню[Цена]<5),{1,0,1})  

Использование константы массива {1,0,1} в качестве аргумента include внешней функции ФИЛЬТР Excel, чтобы исключить второй столбец (поскольку 1=ИСТИНА и 0=ЛОЖЬ).

Списки проверки данных динамического массива

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

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

Шаг 1. Создайте список источников с помощью функции динамического массива или формулы

В приведенном ниже примере функция СОРТИРОВКИ использовалась для создания списка источников в алфавитном порядке.

  =СОРТИРОВКА(Меню[Название элемента])  

Шаг 2. Используйте индикатор диапазона разлива, чтобы обратиться к динамическому выходу

  • В ячейке, где требуется раскрывающийся список, перейдите на вкладку «Данные» и выберите команду «Проверка данных». Выберите Список из раскрывающегося списка Разрешить .
  • См. диапазон разливов в поле Источник . Индикатор диапазона разлива необходимо ввести вручную после ссылки на первую ячейку диапазона разлива. Если проверка данных будет скопирована в другие ячейки, следует использовать абсолютную ссылку на ячейку.
  =$A$14#  

Ошибки при использовании динамических массивов

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

#РАЗЛИВ!

Диапазон разлива не пустой

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

Диапазон переполнения неизвестен

Эта ошибка может возникнуть, если Excel не может определить, сколько строк и столбцов потребуется для вывода. Например, когда изменчивые функции, возвращающие разные значения при каждом пересчете формул (например, СЛУЧАЙ, СЛУЧМЕЖДУ, СЛУЧАЙ), вложены в некоторые другие динамические функции. См. пример ниже.

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

Диапазон сброса в таблице

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

#РАССЧ!

Пустые массивы не поддерживаются

Поскольку Dynamic Excel не поддерживает пустые массивы, любая формула, результатом которой является пустой массив, вернет #CALC! ошибка. Например, если ни одна запись в исходном массиве не соответствует критериям в включают аргумент функции ФИЛЬТР, Excel вернет #CALC! ошибка. В этом случае решением было бы включить необязательный аргумент if_empty для отображения альтернативного ответа.

Вы не можете изменить часть массива

Это сообщение появляется во всплывающем окне, если вы пытаетесь отсортировать элементы в диапазоне разброса с помощью команды «Сортировка» на ленте или в контекстном меню.

Это связано с известным принципом, согласно которому мы не можем изменить часть формулы массива (аналогично старым формулам CSE). Чтобы отсортировать диапазон сброса, используйте функцию СОРТИРОВКА по формуле, которая создала диапазон сброса. См. примеры 1 и 2 выше.

Путь вперед

Уже взволнованы? Dynamic Excel представляет собой значительное обновление способа обработки формул в Excel. Со временем Pre-Dynamic Excel уйдет в прошлое, а динамические массивы станут стандартом.

Чтобы узнать больше об Excel, попробуйте наш курс Excel — базовый и продвинутый сегодня.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *