Содержание
- Операции с массивами
- Создание формулы
- Изменение содержимого массива
- Функции массивов
- Оператор СУММ
- Оператор ТРАНСП
- Оператор МОБР
- Вопросы и ответы
Во время работы с таблицами Excel довольно часто приходится оперировать с целыми диапазонами данных. При этом некоторые задачи подразумевают, что вся группа ячеек должна быть преобразована буквально в один клик. В Экселе имеются инструменты, которые позволяют проводить подобные операции. Давайте выясним, как можно управлять массивами данных в этой программе.
Операции с массивами
Массив – это группа данных, которая расположена на листе в смежных ячейках. По большому счету, любую таблицу можно считать массивом, но не каждый из них является таблицей, так как он может являться просто диапазоном. По своей сущности такие области могут быть одномерными или двумерными (матрицы). В первом случае все данные располагаются только в одном столбце или строке.
Во втором — в нескольких одновременно.
Кроме того, среди одномерных массивов выделяют горизонтальный и вертикальный тип, в зависимости от того, что они собой представляют – строку или столбец.
Нужно отметить, что алгоритм работы с подобными диапазонами несколько отличается от более привычных операций с одиночными ячейками, хотя и общего между ними тоже много. Давайте рассмотрим нюансы подобных операций.
Создание формулы
Формула массива – это выражение, с помощью которого производится обработка диапазона с целью получения итогового результата, отображаемого цельным массивом или в одной ячейке. Например, для того, чтобы умножить один диапазон на второй применяют формулу по следующему шаблону:
=адрес_массива1*адрес_массива2
Над диапазонами данных можно также выполнять операции сложения, вычитания, деления и другие арифметические действия.
Координаты массива имеют вид адресов первой её ячейки и последней, разделенные двоеточием. Если диапазон двумерный, то первая и последняя ячейки расположены по диагонали друг от друга. Например, адрес одномерного массива может быть таким: A2:A7.
А пример адреса двумерного диапазона выглядит следующим образом: A2:D7.
- Чтобы рассчитать подобную формулу, нужно выделить на листе область, в которую будет выводиться результат, и ввести в строку формул выражение для вычисления.
- После ввода следует нажать не на кнопку Enter, как обычно, а набрать комбинацию клавиш Ctrl+Shift+Enter. После этого выражение в строке формул будет автоматически взято в фигурные скобки, а ячейки на листе будут заполнены данными, полученными в результате вычисления, в пределах всего выделенного диапазона.
Изменение содержимого массива
Если вы в дальнейшем попытаетесь удалить содержимое или изменить любую из ячеек, которая расположена в диапазоне, куда выводится результат, то ваше действие окончится неудачей. Также ничего не выйдет, если вы сделаете попытку отредактировать данные в строке функций. При этом появится информационное сообщение, в котором будет говориться, что нельзя изменять часть массива. Данное сообщение появится даже в том случае, если у вас не было цели производить какие-либо изменения, а вы просто случайно дважды щелкнули мышью по ячейке диапазона.
Если вы закроете, это сообщение, нажав на кнопку «OK», а потом попытаетесь переместить курсор с помощью мышки, или просто нажмете кнопку «Enter», то информационное сообщение появится опять. Не получится также закрыть окно программы или сохранить документ. Все время будет появляться это назойливое сообщение, которое блокирует любые действия. А выход из ситуации есть и он довольно прост
- Закройте информационное окно, нажав на кнопку «OK».
- Затем нажмете на кнопку «Отмена», которая расположена в группе значков слева от строки формул, и представляет собой пиктограмму в виде крестика. Также можно нажать на кнопку Esc на клавиатуре. После любой из этих операций произойдет отмена действия, и вы сможете работать с листом так, как и прежде.
Но что делать, если действительно нужно удалить или изменить формулу массива? В этом случае следует выполнить нижеуказанные действия.
- Для изменения формулы выделите курсором, зажав левую кнопку мыши, весь диапазон на листе, куда выводится результат. Это очень важно, так как если вы выделите только одну ячейку массива, то ничего не получится. Затем в строке формул проведите необходимую корректировку.
- После того, как изменения внесены, набираем комбинацию Ctrl+Shift+Esc. Формула будет изменена.
- Для удаления формулы массива нужно точно так же, как и в предыдущем случае, выделить курсором весь диапазон ячеек, в котором она находится. Затем нажать на кнопку Delete на клавиатуре.
- После этого формула будет удалена со всей области. Теперь в неё можно будет вводить любые данные.
Функции массивов
Наиболее удобно в качестве формул использовать уже готовые встроенные функции Excel. Доступ к ним можно получить через Мастер функций, нажав кнопку «Вставить функцию» слева от строки формул. Или же во вкладке «Формулы» на ленте можно выбрать одну из категорий, в которой находится интересующий вас оператор.
После того, как пользователь в Мастере функций или на ленте инструментов выберет наименование конкретного оператора, откроется окно аргументов функции, куда можно вводить исходные данные для расчета.
Правила ввода и редактирования функций, если они выводят результат сразу в несколько ячеек, те же самые, что и для обычных формул массива. То есть, после ввода значения обязательно нужно установить курсор в строку формул и набрать сочетание клавиш Ctrl+Shift+Enter.
Урок: Мастер функций в Excel
Оператор СУММ
Одной из наиболее востребованных функций в Экселе является СУММ. Её можно применять, как для суммирования содержимого отдельных ячеек, так и для нахождения суммы целых массивов. Синтаксис этого оператора для массивов выглядит следующим образом:
=СУММ(массив1;массив2;…)
Данный оператор выводит результат в одну ячейку, а поэтому для того, чтобы произвести подсчет, после внесения вводных данных достаточно нажать кнопку «OK» в окне аргументов функции или клавишу Enter, если ввод выполнялся вручную.
Урок: Как посчитать сумму в Экселе
Оператор ТРАНСП
Функция ТРАНСП является типичным оператором массивов. Она позволяет переворачивать таблицы или матрицы, то есть, менять строки и столбцы местами. При этом она использует исключительно вывод результата в диапазон ячеек, поэтому после введения данного оператора обязательно нужно применять сочетание Ctrl+Shift+Enter. Также нужно отметить, что перед введением самого выражения нужно выделить на листе область, у которой количество ячеек в столбце будет равно числу ячеек в строке исходной таблицы (матрицы) и, наоборот, количество ячеек в строке должно равняться их числу в столбце исходника. Синтаксис оператора следующий:
=ТРАНСП(массив)
Урок: Транспонирование матриц в Excel
Урок: Как перевернуть таблицу в Экселе
Оператор МОБР
Функция МОБР позволяет производить вычисление обратной матрицы. Все правила ввода значений у этого оператора точно такие же, как и у предыдущего. Но важно знать, что вычисление обратной матрицы возможно исключительно в том случае, если она содержит равное количество строк и столбцов, и если её определитель не равен нулю. Если применять данную функцию к области с разным количеством строк и столбцов, то вместо корректного результата на выходе отобразится значение «#ЗНАЧ!». Синтаксис у этой формулы такой:
=МОБР(массив)
Для того чтобы рассчитать определитель, применяется функция со следующим синтаксисом:
=МОПРЕД(массив)
Урок: Обратная матрица в Excel
Как видим, операции с диапазонами помогают сэкономить время при вычислениях, а также свободное пространство листа, ведь не нужно дополнительно суммировать данные, которые объединены в диапазон, для последующей работы с ними. Все это выполняется «на лету». А для преобразования таблиц и матриц только функции массивов и подходят, так как обычные формулы не в силах справиться с подобными задачами. Но в то же время нужно учесть, что к подобным выражениям применяются дополнительные правила ввода и редактирования.
#Руководства
- 25 июл 2022
-
0
Как с помощью массивов ускорить расчёты в таблицах с тысячами значений? Как поменять местами столбцы и строки? Разбираемся на примерах.
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Часто новичкам в Excel кажется, что массивы — это высший пилотаж в работе с таблицами. На деле всё гораздо проще.
Массивы в Excel — это данные из двух и более смежных ячеек таблицы, которые используют в расчётах как единую группу, одновременно. Массивом может быть одна строка или столбец, несколько строк или столбцов и даже целые таблицы.
Операции с массивами — не основная функциональность Excel, но они делают работу с большими диапазонами значений удобнее и быстрее. С помощью массивов можно проводить расчёты не поочерёдно с каждой ячейкой диапазона, а со всем диапазоном одновременно. Или создать формулу, которая выполнит сразу несколько действий с любым количеством ячеек.
В статье разберёмся:
- какие виды массивов есть в Excel;
- что такое формула массива и как она работает.
Подробно покажем на примерах, как выполнить четыре базовые операции с помощью формул массивов и операторов Excel:
- построчно перемножить значения двух столбцов;
- умножить одно значение сразу на весь столбец;
- выполнить два действия одной формулой;
- поменять местами положение столбцов и строк таблицы.
В конце расскажем, как создать формулу массива в «Google Таблицах».
Массивы в Excel бывают одномерными и двумерными.
В одномерных массивах все данные расположены в одной строке или в одном столбце. В зависимости от этого их делят на горизонтальные и вертикальные.
Скриншот: Excel / Skillbox Media
Скриншот: Excel / Skillbox Media
В двумерных массивах данные расположены сразу в нескольких столбцах и строках. Такие массивы могут образовывать целые таблицы, а иногда занимают даже несколько листов.
Скриншот: Excel / Skillbox Media
Работа с массивами в Excel похожа на стандартную работу с одиночными ячейками. Отличие в том, что расчёты и операции проводят одновременно для всех значений диапазонов, а не для одного. Для этого используют формулы массивов.
Формула массива — формула, где в качестве входящих параметров используют диапазоны значений, а не одиночные ячейки. Диапазоны значений обозначаются через двоеточие :. Например, A1:A10 или А1:В10.
С формулами массива можно выполнить несколько математических действий одновременно. Например, чтобы перемножить значения двух столбцов и затем суммировать полученные числа, понадобится одна формула массива и одно действие.
В целом формулы массивов работают так же, как и обычные формулы. В них можно использовать любые математические действия.
Формулы массивов можно использовать как для одной ячейки, так и для нескольких одновременно. Например, можно посчитать в одной ячейке сумму значений из нескольких столбцов. Такая формула массива называется одноячеечной. Или можно перемножить значения двух столбцов построчно, а результат вывести в третий. Формула массива будет называться многоячеечной.
В следующих разделах покажем четыре примера, как создавать и использовать формулы массивов.
Допустим, нужно рассчитать смету устройства фундаментов. У нас есть перечень необходимых работ, их объёмы и цена единиц измерения объёмов.
Скриншот: Excel / Skillbox Media
Определим стоимость каждой работы.
Можно пойти классическим путём — перемножить первые ячейки столбцов «Количество» и «Цена ед., руб.», а затем растянуть результат вниз на все остальные виды работ. Но если видов будет несколько сотен или тысяч, этот вариант может быть неудобен.
Формула массивов выведет результаты одновременно для всего диапазона — никаких дополнительных действий выполнять не потребуется. Рассмотрим, как это сделать.
Шаг 1. Выделяем столбец, в котором хотим получить результат расчёта, — в нашем случае это диапазон E2:E9. В строке ссылок вводим знак равенства.
Скриншот: Excel / Skillbox Media
Шаг 2. Выделяем первый массив, который участвует в расчётах, — все значения столбца «Количество». Одновременно с этим в строке ссылок появляется выбранный диапазон: B2:B9.
Скриншот: Excel / Skillbox Media
Шаг 3. Ставим знак умножения в строке ссылок и выбираем второй массив — все значения столбца «Цена ед., руб.».
Строка ссылок принимает вид: fx=B2:B9*D2:D9. Это значит, что значения первого массива должны умножиться на значения второго массива.
Скриншот: Excel / Skillbox Media
Шаг 4. Нажимаем Enter — в столбце «Стоимость, руб.» появляется результат расчёта. Так, в один клик, формула сработала сразу для всех строк.
Скриншот: Excel / Skillbox Media
По такому же принципу можно проводить разные арифметические вычисления для одного массива.
Допустим, для нашей сметы нужно рассчитать дополнительные расходы, составляющие долю в общей стоимости работ.
Скриншот: Excel / Skillbox Media
Как и в первом случае, можно перемножить первую ячейку столбца «Доля от стоимости работ» и ячейку с общей стоимостью работ. Затем растянуть результат вниз на все остальные расходы. А можно, для удобства и ускорения процесса, воспользоваться формулой массивов. Она позволит одним действием посчитать сумму всех расходов.
Шаг 1. Выделяем столбец для результата расчёта: С13:С16. В строке ссылок вводим знак равенства.
Скриншот: Excel / Skillbox Media
Шаг 2. Выделяем массив, который участвует в расчётах, — все значения столбца «Доля от стоимости работ». В формуле строки ссылок появляется выбранный диапазон: B13:B16. Добавляем к нему знак умножения и выбираем ячейку с общей стоимостью работ: E10.
Скриншот: Excel / Skillbox Media
Шаг 3. Нажимаем Enter. Во всём столбце «Стоимость, руб.» появляются результаты расчётов.
Скриншот: Excel / Skillbox Media
Вернёмся к нашему первому примеру со сметой. Там мы рассчитывали стоимость каждой работы отдельно. Общую стоимость работ в этом случае было проще определить путём сложения всех полученных значений.
Скриншот: Excel / Skillbox Media
Предположим, нам нужно получить общую стоимость устройства фундаментов одним действием, а стоимость каждой работы отдельно при этом не важна.
Для этого воспользуемся формулой массивов и оператором СУММ. Они выполнят одновременно два математических действия: перемножат столбцы и суммируют полученные результаты.
Шаг 1. Выделяем ячейку, в которой хотим получить результат расчёта. В строке ссылок вводим знак равенства и оператор СУММ и открываем скобку.
Скриншот: Excel / Skillbox Media
Шаг 2. По аналогии с алгоритмом из предыдущего раздела, выделяем первый массив — значения столбца «Количество» и второй массив — значения столбца «Цена ед., руб.». Ставим между ними знак умножения и закрываем скобку.
Строка ссылок принимает вид: fx=СУММ(B2:B9*D2:D9). Это значит, что значения первого массива должны перемножиться со значениями второго массива, а все полученные результаты — суммироваться.
Скриншот: Excel / Skillbox Media
Шаг 3. Нажимаем Enter. В выбранной ячейке появляется результат расчёта. Формула рассчитала одновременно два действия: перемножила значения ячеек двух массивов и суммировала полученные результаты.
Скриншот: Excel / Skillbox Media
По такой же схеме в формулах массивов можно использовать и другие функции Excel. Отличие от их классического применения будет в том, что аргументами будут не отдельные ячейки, а массивы таких ячеек.
Иногда при работе в Excel нужно поменять положение столбцов или строк — транспортировать их. Например, перевести шапку таблицы из горизонтального положения в вертикальное. Делать это вручную долго — особенно, когда ячеек очень много. Ускорить процесс помогут массивы и оператор ТРАНСП:
Шаг 1. Выделяем ячейку, в которой хотим получить результат операции. В строке ссылок вводим знак равенства и оператор ТРАНСП и открываем скобку.
Скриншот: Excel / Skillbox Media
Шаг 2. Выделяем шапку таблицы и закрываем скобку. Строка ссылок принимает вид: fx=ТРАНСП(A1:E1).
Скриншот: Excel / Skillbox Media
Шаг 3. Нажимаем Enter — функция меняет положение шапки таблицы на вертикальное.
Скриншот: Excel / Skillbox Media
Как создать формулу массива в «Google Таблицах»? Всё точно так же, как в Excel, но нужно добавить оператор ARRAYFORMULA. Его ставят перед всей формулой массива в строке ссылок. Например, если вы хотите перемножить данные в двух столбцах, формула в готовом виде будет выглядеть так:
fx=ARRAYFORMULA(B2:B9*D2:D9).
Скриншот: Google Таблицы / Skillbox Media
Другие материалы Skillbox Media по Excel
- Как сделать сводные таблицы в Excel — детальная инструкция со скриншотами
- Руководство: как сделать ВПР в Excel и перенести данные из одной таблицы в другую
- Руководство по макросам для новичков — для чего нужны и как их сделать
- Инструкция: как закреплять строки и столбцы в Excel
- Руководство по созданию выпадающих списков в Excel — как упростить заполнение таблицы повторяющимися данными
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше
Массив функций Excel позволяет решать сложные задачи в автоматическом режиме одновременно. Те, которые выполнить посредством обычных функций невозможно.
Фактически это группа функций, которые одновременно обрабатывают группу данных и сразу выдают результат. Рассмотрим подробно работу с массивами функций в Excel.
Виды массивов функций Excel
Массив – данные, объединенные в группу. В данном случае группой является массив функций в Excel. Любую таблицу, которую мы составим и заполним в Excel, можно назвать массивом. Пример:
В зависимости от расположения элементов различают массивы:
- одномерные (данные находятся в ОДНОЙ строке или в ОДНОМ столбце);
- двумерные (НЕСКОЛЬКО строк и столбцов, матрица).
Одномерные массивы бывают:
- горизонтальными (данные – в строке);
- вертикальными (данные – в столбце).
Примечание. Двумерные массивы Excel могут занимать сразу несколько листов (это сотни и тысячи данных).
Формула массива – позволяет обработать данные из этого массива. Она может возвращать одно значение либо давать в результате массив (набор) значений.
С помощью формул массива реально:
- подсчитать количество знаков в определенном диапазоне;
- суммировать только те числа, которые соответствуют заданному условию;
- суммировать все n-ные значения в определенном диапазоне.
Когда мы используем формулы массива, Excel видит диапазон значений не как отдельные ячейки, а как единый блок данных.
Синтаксис формулы массива
Используем формулу массива с диапазоном ячеек и с отдельной ячейкой. В первом случае найдем промежуточные итоги для столбца «К оплате». Во втором – итоговую сумму коммунальных платежей.
- Выделяем диапазон Е3:Е8.
- В строку формул вводим следующую формулу: =C3:C8*D3:D8.
- Нажимаем одновременно клавиши: Ctrl + Shift + Enter. Промежуточные итоги посчитаны:
Формула после нажатия Ctrl + Shift + Enter оказалась в фигурных скобках. Она подставилась автоматически в каждую ячейку выделенного диапазона.
Если попытаться изменить данные в какой-либо ячейке столбца «К оплате» — ничего не выйдет. Формула в массиве защищает значения диапазона от изменений. На экране появляется соответствующая запись:
Рассмотрим другие примеры использования функций массива Excel – рассчитаем итоговую сумму коммунальных платежей с помощью одной формулы.
- Выделяем ячейку Е9 (напротив «Итого»).
- Вводим формулу вида: =СУММ(C3:C8*D3:D8).
- Нажимаем сочетание клавиш: Ctrl + Shift + Enter. Результат:
Формула массива в данном случае заменила две простые формулы. Это сокращенный вариант, вместивший всю необходимую информацию для решения сложной задачи.
Аргументы для функции – одномерные массивы. Формула просматривает каждый из них по отдельности, совершает заданные пользователем операции и генерирует единый результат.
Рассмотрим ее синтаксис:
Функции работы с массивами Excel
Предположим, в следующем месяце планируется увеличение коммунальных платежей на 10%. Если мы введем обычную формулу для итога =СУММ((C3:C8*D3:D8)+10%), то вряд ли получим ожидаемый результат. Нам нужно, чтобы каждый аргумент увеличился на 10%. Чтобы программа поняла это, мы используем функцию как массив.
- Посмотрим, как работает оператор «И» в функции массива. Нам нужно узнать, сколько мы платим за воду, горячую и холодную. Функция: . Итого – 346 руб.
- Функция «Сортировки» в формуле массива. Отсортируем суммы к оплате в порядке возрастания. Для списка отсортированных данных создадим диапазон. Выделим его. В строке формул вводим . Жмем сочетание Ctrl + Shift + Enter.
- Транспонированная матрица. Специальная функция Excel для работы с двумерными массивами. Функция «ТРАНСП» возвращает сразу несколько значений. Преобразует горизонтальную матрицу в вертикальную и наоборот. Выделяем диапазон ячеек, где количество строк = числу столбцов в таблице с исходными данными. А количество столбцов = числу строк в исходном массиве. Вводим формулу: . Получается «перевернутый» массив данных.
- Поиск среднего значения без учета нулей. Если мы воспользуемся стандартной функцией «СРЗНАЧ», то получим в результате «0». И это будет правильно. Поэтому вставляем в формулу дополнительное условие: . Получаем:
Скачать примеры массива функций
Распространенная ошибка при работе с массивами функций – НЕ нажатие кодового сочетания «Ctrl + Shift + Enter» (никогда не забывайте эту комбинацию клавиш). Это самое главное, что нужно запомнить при обработке больших объемов информации. Правильно введенная функция выполняет сложнейшие задачи.
Управление массивами в Microsoft Excel
Смотрите также или удалить одну Enter, как обычно,Скачать примеры массива функций простые формулы. ЭтоПримечание. Двумерные массивы Excel статье «Сортировка в когда видит фигурные. обмена ( качестве результата массив: массивах разделяются точкойОбратная матрица в Excel вручную. области. Теперь в переместить курсор с
действия.Во время работы с
Операции с массивами
отдельно взятую формулу аРаспространенная ошибка при работе сокращенный вариант, вместивший могут занимать сразу Excel формулой» здесь. скобки. А именноМассив в ExcelCTRL+CВо втором случае формула с запятой (;).Как видим, операции сУрок: неё можно будет помощью мышки, илиКоординаты массива имеют вид таблицами Excel довольно (например в ячейкеCtrl + Shift +
с массивами функций всю необходимую информацию
несколько листов (этоШестой пример. — к числу – это любое) и вставить его вводится в одну Например, на рисунке
диапазонами помогают сэкономитьКак посчитать сумму в вводить любые данные. просто нажмете кнопку адресов первой её часто приходится оперировать D10) и выдаст Enter – НЕ нажатие для решения сложной
Создание формулы
сотни и тысячиС помощью формулы 1+2, к 2+2, количество ячеек с в нужную формулу. ячейку и возвращает ниже представлен одномерный время при вычислениях, ЭкселеНаиболее удобно в качестве«Enter» ячейки и последней,
с целыми диапазонами
предупреждающее сообщениеВуаля! кодового сочетания «Ctrl задачи. данных).
массива можно удалить к 3+2, к данными (кроме одной),Другим подходом для формирования только одно значение: горизонтальный массив, который а также свободноеФункция формул использовать уже, то информационное сообщение разделенные двоеточием. Если данных. При этомНевозможно изменить часть массива
Т.е. Excel произвел попарное + Shift +Аргументы для функции –Формула массива – позволяет из списка, столбца
- 4+2, к 5+2, расположенных в строках, числовой последовательности являетсяИтак, в данном уроке состоит из 5 пространство листа, ведьТРАНСП
- готовые встроенные функции появится опять. Не диапазон двумерный, то некоторые задачи подразумевают,. умножение элементов массивов Enter» (никогда не одномерные массивы. Формула обработать данные из пустые ячейки. Смотри к 6+2. Затем, столбцах, диапазонах. Можно использование формулы СТРОКА(A1:A3) Вы познакомились с элементов: не нужно дополнительно
Изменение содержимого массива
является типичным оператором Excel. Доступ к получится также закрыть первая и последняя что вся группаДля редактирования формулы массива B2:B5 и C2:C5 забывайте эту комбинацию просматривает каждый из этого массива. Она этот способ в получившиеся суммы сложит. сказать, массив вВ итоге получим =СУММПРОИЗВ(НАИБОЛЬШИЙ(A2:A15;СТРОКА(A1:A3))) основными терминами иЕсли ввести его на суммировать данные, которые массивов. Она позволяет ним можно получить окно программы или ячейки расположены по ячеек должна быть необходимо выделить весь и образовал новый клавиш). Это самое них по отдельности,
может возвращать одно статье «Как удалить Получится результат = Excel – этоНо у этого подхода определениями, касаемо формул рабочий лист Excel, объединены в диапазон, переворачивать таблицы или через сохранить документ. Все диагонали друг от преобразована буквально в диапазон (A10:H11 в массив стоимостей (в главное, что нужно совершает заданные пользователем значение либо давать пустые ячейки в 33. диапазон ячеек. Что
- есть два недостатка: массива в Excel. получим следующий результат: для последующей работы
- матрицы, то есть,Мастер функций время будет появляться друга. Например, адрес один клик. В нашем случае) и памяти компьютера), а запомнить при обработке операции и генерирует в результате массив Excel».Корректировка формулы массива в такое диапазон, какпри вставке новых строк Если желаете получитьЧтобы вставить такой массив с ними. Все
менять строки и, нажав кнопку это назойливое сообщение, одномерного массива может Экселе имеются инструменты, изменить формулу в
- затем сложил все больших объемов информации. единый результат. (набор) значений.Седьмой пример.Excel его выделять, читайте на лист перед еще больше информации в Excel, необходимо это выполняется «на столбцы местами. При«Вставить функцию»
- которое блокирует любые быть таким: которые позволяют проводить строке формул (или
- элементы этого нового Правильно введенная функцияРассмотрим ее синтаксис:С помощью формул массиваМы видим, что. в статье «Что строками 1-3, формула о массивах, читайте сначала выделить строку, лету». А для
- этом она используетслева от строки действия. А выходA2:A7 подобные операции. Давайте
Функции массивов
нажав массива. выполняет сложнейшие задачи.Предположим, в следующем месяце реально: много вариантов примененияКорректируем формулу массива, такое диапазон в автоматически модифицируется в следующие статьи: состоящую из 5 преобразования таблиц и исключительно вывод результата формул. Или же из ситуации есть. выясним, как можноF2
Обратите внимание на фигурныеПод планируется увеличение коммунальныхподсчитать количество знаков в формулы массива. Рассмотрим как обычную формулу, Excel» здесь. СТРОКА(A2:A4) или СТРОКА(A1:A4)Многоячеечные формулы массива в ячеек, затем ввести
матриц только функции в диапазон ячеек, во вкладке и он довольноА пример адреса двумерного управлять массивами данных). Затем необходимо повторить скобки, появившиеся вмассивом платежей на 10%. определенном диапазоне; последний пример, который НО, для ееЗдесь рассмотрим, и соответственно формируется
Excel формулу массива и
Оператор СУММ
массивов и подходят, поэтому после введения«Формулы» прост диапазона выглядит следующим в этой программе. ввод измененной формулы формуле — отличительныйобычно понимают набор Если мы введемсуммировать только те числа, поможет написать алфавит.
ввода нажимаем НЕ
как ввести формулу массива неправильный массив {2:3:4}Одноячеечные формулы массива в нажать комбинацию клавиш так как обычные данного оператора обязательнона ленте можноЗакройте информационное окно, нажав образом:Скачать последнюю версию массива, нажав сочетание признак данных, объединенных в
обычную формулу для которые соответствуют заданномуЭтот алфавит пригодится для
Оператор ТРАНСП
«Enter», а сочетание в Excel или {1:2:3:4}. Исправить ExcelCtrl+Shift+Enter формулы не в нужно применять сочетание выбрать одну из на кнопкуA2:D7 Excel клавишформулы массива группу. Массивы бывают итога =СУММ((C3:C8*D3:D8)+10%), то условию; раскрывающегося списка, когда клавиш – «Ctrl», чем отличаются простые это может формулаМассивы констант в Excel. силах справиться сCtrl+Shift+Enter категорий, в которой«OK».Массив – это группаCtrl + Shift +. Вводить их вручную
одномерные
вряд ли получимсуммировать все n-ные значения
фамилии распределяются по + «Shift» + формулы от формул
Оператор МОБР
СТРОКА(ДВССЫЛ(«A1:A3»))Редактирование формул массива вЭлементы в одномерном вертикальном подобными задачами. Но. Также нужно отметить, находится интересующий вас.Чтобы рассчитать подобную формулу, данных, которая расположена Enter. с клавиатуры бесполезно(элементы массива образуют ожидаемый результат. Нам в определенном диапазоне. буквам. Подробнее об «Enter». массива. Разберемформула возвращает статичный массив. Excel массиве разделяются двоеточием в то же что перед введением оператор.Затем нажмете на кнопку нужно выделить на на листе вExcel также не позволит
- они автоматически
строку или столбец) нужно, чтобы каждыйКогда мы используем формулы
этом смотрите в
Второй пример.примеры формулы массива в
Массив последовательных чисел переменнойПрименение формул массива в (:). Например, на время нужно учесть, самого выражения нужноПосле того, как пользователь«Отмена» листе область, в смежных ячейках. По свободно перемещать ячейки, появляются при нажатии или аргумент увеличился на массива, Excel видит статье «Связанный выпадающийЕсли нам нужноExcel длины можно сформировать Excel рисунке ниже представлен что к подобным выделить на листе в, которая расположена в которую будет выводиться
большому счету, любую
lumpics.ru
Знакомство с формулами массива в Excel
входящие в формулуCtrl + Shift +двумерные 10%. Чтобы программа диапазон значений не список в Excel не прибавить к. Начнем с простого. с помощью формулыПодходы к редактированию формул одномерный вертикальный массив, выражениям применяются дополнительные область, у которойМастере функций группе значков слева результат, и ввести таблицу можно считать
Одномерные и двухмерные массивы
массива или добавлять Enter.(матрица). Легко сообразить, поняла это, мы как отдельные ячейки, по алфавиту». числам столбца А
У нас такая =СТРОКА(ДВССЫЛ(«A1:A»&G2)), где в
массива в Excel который состоит из правила ввода и
количество ячеек вили на ленте от строки формул, в строку формул
Размерность массива
массивом, но не новые строки-столбцы-ячейки вПри работе с таблицами что почти в используем функцию как а как единыйВ Excel есть число 2, а таблица. ячейке
Урок подготовлен для Вас 4 элементов.
- редактирования. столбце будет равно инструментов выберет наименование и представляет собой выражение для вычисления. каждый из них диапазон формулы массива часто возникает необходимость любой таблице Excel массив. блок данных.
несколько способов быстро умножить числа столбцаПервый пример.G2 командой сайта office-guru.ruЕсли ввести его наАвтор: Максим Тютюшев числу ячеек в конкретного оператора, откроется
- пиктограмму в видеПосле ввода следует нажать является таблицей, так (т.е. в диапазон поменять местами строки при желании можноПосмотрим, как работает оператор узнать или посчитать А на цифру
- Чтобы сложить этипользователем задается последнийАвтор: Антон Андронов рабочий лист, получимФормула массива строке исходной таблицы окно аргументов функции, крестика. Также можно не на кнопку как он может A10:H11 в нашем и столбцы, т.е. найти один или
«И» в функцииИспользуем формулу массива с сумму ячеек. Узнать 2, то в числа, достаточно поставить элемент последовательности (т.е.Автор: Антон Андронов следующий результат:– это один
(матрицы) и, наоборот, куда можно вводить нажать на кнопкуEnter являться просто диапазоном. случае)
развернуть таблицу на несколько таких массивов: массива. Нам нужно диапазоном ячеек и сумму в Excel формуле так и автосумму. Получится такая
сумму скольких наибольшихДля построения формул массиваВ двухмерных массивах для
Одноячеечные и многоячеечные формулы массива
из наиболее мощных количество ячеек в исходные данные дляEsc, как обычно, а По своей сущностиВспомните детство, школу, свою
бок, чтобы данные,Формулы массива узнать, сколько мы с отдельной ячейкой.
можно без установки пишем. Получится такая формула. =СУММ(A1:A6) Результат требуется найти). В иногда используют числовую разделения элементов в инструментов Excel, но строке должно равняться расчета.
- на клавиатуре. После набрать комбинацию клавиш
- такие области могут тетрадку по математике…
- которые раньше шли
- в Excel - платим за воду,
- В первом случае формулы. Есть несколько
- формула. {=СУММ(A1:A6*2)} Результат получился = 21.
итоге получим =СУММПРОИЗВ(НАИБОЛЬШИЙ(Список;СТРОКА(ДВССЫЛ(«A1:A»&G2)))) последовательность, например {1:2:3:4:5:6:7},
строке используется точка
также и один
office-guru.ru
Массив последовательных чисел в MS EXCEL
их числу вПравила ввода и редактирования любой из этихCtrl+Shift+Enter быть одномерными или На обороте тетради по строке, теперь это специальные формулы горячую и холодную. найдем промежуточные итоги способов установки и получится = 42.Теперь нам нужно
В некоторых формулах массива
вводимую непосредственно в с запятой, а из самых сложных. столбце исходника. Синтаксис
функций, если они операций произойдет отмена. После этого выражение
двумерными (матрицы). В на обложке было располагались в столбцах
для обработки данных Функция: . Итого для столбца «К
применения формул суммы,Третий пример. прибавить к каждому требуется, чтобы размер формулу. Эту последовательность для разделения строк Массивом в Excel оператора следующий: выводят результат сразу действия, и вы в строке формул первом случае все что? Таблица умножения и наоборот. В из таких массивов. – 346 руб. оплате». Во втором вычитания, т.д. вФормулу массива можно числу в столбце массива последовательных чисел
можно сформировать вручную, – двоеточие. На называют набор элементов,
=ТРАНСП(массив)
в несколько ячеек, сможете работать с
- будет автоматически взято данные располагаются только вот такого вида: математике такая операция Формулы массива делятсяФункция «Сортировки» в формуле – итоговую сумму Excel. Несколько способов установить не только А число 2.
- соответствовал размеру диапазона
введя константу массива, рисунке ниже представлен который может обрабатыватьсяУрок: те же самые, листом так, как в фигурные скобки, в одном столбцеПри помощи формул массива называется транспонированием. При на две категории
Динамический массив последовательных чисел
массива. Отсортируем суммы коммунальных платежей. мы рассмотрели в в одной ячейке, Затем, полученные суммы с данными. Это или с использованием массив, который состоит
как одно целое,Транспонирование матриц в Excel что и для и прежде. а ячейки на или строке. она вся делается помощи формулы массива — те, что к оплате в
Выделяем диапазон Е3:Е8. статье «Сумма в но и в
сложить. Чтобы так актуально, когда в функций, например СТРОКА(). из 3 строк так и какУрок: обычных формул массива.Но что делать, если листе будут заполненыВо втором — в в одно движение: и функции
excel2.ru
Формулы массива Excel.
возвращают одно значение порядке возрастания. ДляВ строку формул вводим Excel». диапазоне ячеек. Например, посчитать простой формулой, этот диапазон постоянно Также с помощью и 5 столбцов.
набор, т.е. каждыйКак перевернуть таблицу в То есть, после действительно нужно удалить данными, полученными в нескольких одновременно.выделяем диапазон B2:K11ТРАНСП (TRANSPOSE) и те, что списка отсортированных данных следующую формулу: =C3:C8*D3:D8.Массив функций Excel позволяет нам нужно умножить нам нужно куда-то
добавляются значения. формул можно динамическиЕсли ввести данный массив элемент по отдельности. Экселе ввода значения обязательно или изменить формулу результате вычисления, вКроме того, среди одномерныхвводим формулу =A2:A11*B1:K1это делается на
дают на выходе
создадим диапазон. ВыделимНажимаем одновременно клавиши: Ctrl решать сложные задачи числа столбца А внести число 2,
Создадим Динамический диапазон Список изменять длину числовой в Excel, результат В этом урокеФункция нужно установить курсор массива? В этом пределах всего выделенного массивов выделяют горизонтальныйжмем раз. целый набор (массив) его. В строке + Shift + в автоматическом режиме на числа строки м.б. в столбец
(=СМЕЩ(Лист1!$A$2;;;СЧЁТ(Лист1!$A$2:$A$15))), который будет последовательности.
будет таким: мы познакомимся сМОБР
в строку формул
случае следует выполнить диапазона. и вертикальный тип,
Ctrl + Shift +Допустим, имеем двумерный массив значений. Рассмотрим их формул вводим . Enter. Промежуточные итоги одновременно. Те, которые 1. Как написать
В, затем сложить содержать все значения
Создание массива последовательных чиселПри создании двухмерного массива базовыми сведениями опозволяет производить вычисление и набрать сочетание нижеуказанные действия.Если вы в дальнейшем в зависимости от Enter ячеек, который хотим на простых примерах… Жмем сочетание Ctrl посчитаны: выполнить посредством обычных такую формулу подробно все по строкам,
исходного списка и Сформируем массив последовательных чисел необходимо учитывать, чтобы
массивах. обратной матрицы. Все клавишДля изменения формулы выделите попытаетесь удалить содержимое того, что они, чтобы Excel воспринял транспонировать.
Задача: рассчитать общую сумму
+ Shift +Формула после нажатия Ctrl функций невозможно. описано в статье затем автосуммой сложить автоматически расширяться при для решения конкретного все его строкиВ Excel различают одномерные правила ввода значенийCtrl+Shift+Enter
курсором, зажав левую
или изменить любую собой представляют – ее как формулуВыделяем диапазон ячеек для заказа. Если идти Enter. + Shift +Фактически это группа функций, «Как сделать таблицу числа в столбце добавлении новых значений примера: подсчитаем сумму имели одинаковое количество и двухмерные массивы.
у этого оператора
. кнопку мыши, весь из ячеек, которая строку или столбец. массива размещения транспонированной таблицы. классическим путем, тоТранспонированная матрица. Специальная функция Enter оказалась в которые одновременно обрабатывают умножения в Excel» – это займет
в столбец 3-х наибольших значений. элементов. Например, следующий Одномерный массив, его точно такие же,Урок: диапазон на листе, расположена в диапазоне,Нужно отметить, что алгоритми получаем результат: Поскольку исходный массив нужно будет добавить Excel для работы фигурных скобках. Она
группу данных и
тут. очень много времениАПусть исходный список содержит массив не сможет еще называют вектором, как и уМастер функций в Excel
куда выводится результат.
куда выводится результат, работы с подобнымиПосмотрите как при помощи ячеек был 8 столбец, где перемножить с двумерными массивами. подставилась автоматически в сразу выдают результат.Четвертый пример. и сил.. Введем 9 значений числовые значения (см. существовать, поскольку его
может храниться в предыдущего. Но важноОдной из наиболее востребованных Это очень важно, то ваше действие диапазонами несколько отличается одной формулы массива строк на 2 цену и количество, Функция «ТРАНСП» возвращает каждую ячейку выделенного Рассмотрим подробно работуНам нужно сложитьВот здесь нам
excel-office.ru
Работа с массивами функций в Excel
(см. рисунок выше). Файл примера). вторая строка содержит одной строке (горизонтальный знать, что вычисление функций в Экселе
так как если окончится неудачей. Также от более привычных красиво и легко столбца, то надо а потом взять сразу несколько значений.
Виды массивов функций Excel
диапазона. с массивами функций данные не из поможет формула массива.Массив последовательных чисел будемСумму 3-х наибольших значений всего 4 элемента. массив) … обратной матрицы возможно
является вы выделите только
- ничего не выйдет, операций с одиночными выбираются данные по
- выделить диапазон пустых сумму по этому
Преобразует горизонтальную матрицу
- Если попытаться изменить данные в Excel.
- всех ячеек столбца,В ячейку А7
формировать с помощью можно подсчитать сЕсли попробовать ввести такой…или в одном столбце исключительно в том
СУММ одну ячейку массива, если вы сделаете ячейками, хотя и определенному товару и ячеек размером 2 столбцу. Если же
в вертикальную и в какой-либо ячейке
- Массив – данные, объединенные а из каждой
- пишем такую формулу. следующей формулы: СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список))) помощью формулы =СУММПРОИЗВ(НАИБОЛЬШИЙ(A2:A15;{1:2:3}))
- массив на рабочий (вертикальный массив).
случае, если она. Её можно применять, то ничего не попытку отредактировать данные общего между ними заказчику:
строки на 8
Синтаксис формулы массива
применить формулу массива, наоборот. Выделяем диапазон столбца «К оплате» в группу. В второй или третьей, =СУММ(A1:A6+2)Здесь функция ЧСТРОК() возвращаетЧтобы не вводить массив лист, то ничего
- Двухмерный массив хранится в
- содержит равное количество как для суммирования
- получится. Затем в в строке функций. тоже много. ДавайтеВ данном случае формула
столбцов. то все будет ячеек, где количество — ничего не данном случае группой т.д. ячейки. ЗдесьВнимание!
количество значений в {1:2:3} вручную, можно не получится. Excel диапазоне ячеек, его строк и столбцов, содержимого отдельных ячеек, строке формул проведите При этом появится рассмотрим нюансы подобных
массива синхронно пробегаетвводим функцию транспонирования =ТРАНСП( гораздо красивее: строк = числу выйдет. Формула в является массив функций
- нам поможет формулаКак ввести формулу массива
- исходном списке (9).
- использовать следующий подход. не позволит Вам еще называют матрицей.
и если её так и для необходимую корректировку. информационное сообщение, в операций. по всем элементам
выделяем ячейку столбцов в таблице массиве защищает значения в Excel. Любую массива. Смотрите статью в После выполнения функции
Введите в диапазон
Функции работы с массивами Excel
это сделать.В отличие от языка определитель не равен нахождения суммы целыхПосле того, как изменения котором будет говориться,Формула массива – это диапазонов C3:C21 ив качестве аргумента функцииС7 с исходными данными. диапазона от изменений. таблицу, которую мы «Как в Excel
- Excel. СТРОКА() получим массив ячеекВ качестве заполнителя отсутствующего программирования VBA, Excel нулю. Если применять массивов. Синтаксис этого внесены, набираем комбинацию
- что нельзя изменять выражение, с помощью B3:B21, проверяя, совпадают выделяем наш массиввводим с клавиатуры А количество столбцов На экране появляется составим и заполним сложить каждую вторуюТеперь, чтобы ввести последовательных чисел {1:2:3:4:5:6:7:8:9},
- B1:B3 элемента в массиве не поддерживает трехмерные данную функцию к оператора для массивовCtrl+Shift+Esc часть массива. Данное которого производится обработка ли они с ячеек A1:B8=СУММ( = числу строк соответствующая запись: в Excel, можно ячейку, строку». эту формулу, как причем этот массивзначения 1, 2
- можно использовать значение массивы. области с разным выглядит следующим образом:. Формула будет изменена. сообщение появится даже диапазона с целью заданными значениями изжмемвыделяем диапазон
в исходном массиве.
Рассмотрим другие примеры использования назвать массивом. Пример:Пятый пример. формулу массива, нажимаем будет динамическим: в и 3 соответственно.#Н/ДРанее мы уже отмечали, количеством строк и=СУММ(массив1;массив2;…)Для удаления формулы массива в том случае, получения итогового результата,
exceltable.com
Формулы массива в Excel
Терминология
ячеек G4 иCtrl + Shift +B2:B5 Вводим формулу: . функций массива ExcelВ зависимости от расположенияФормулой массива можно НЕ «Enter», а зависимости от длины Выделив любую пустую(нет данных). К что массивы в столбцов, то вместоДанный оператор выводит результат нужно точно так если у вас
отображаемого цельным массивом G5. Если совпадения Enterвводим знак умножения ( Получается «перевернутый» массив – рассчитаем итоговую элементов различают массивы: проводить сложные операции сочетание клавиш – диапазона Список будет ячейку, в Строке примеру, следующая запись Excel могут быть корректного результата на
Пример 1. Классика жанра — товарный чек
в одну ячейку, же, как и не было цели или в одной нет, то результати получаем «перевернутыйзвездочка данных. сумму коммунальных платежейодномерные (данные находятся в в таблице, например, «Ctrl» + «Shift»
- формироваться массив последовательных формул введите =B1:B3,
- будет синтаксически верной: одномерными и двухмерными.
- выходе отобразится значение а поэтому для
- в предыдущем случае, производить какие-либо изменения, ячейке. Например, для
- равенства ноль, если массив» в качестве)Поиск среднего значения без с помощью одной ОДНОЙ строке или
- сортировать по условию, + «Enter». чисел соответствующего размера. затем выделите B1:B3Введя данный массив на В свою очередь«#ЗНАЧ!»
того, чтобы произвести
выделить курсором весь а вы просто того, чтобы умножить совпадение есть, то результата:выделяем диапазон учета нулей. Если формулы. в ОДНОМ столбце);
используя различные функции.Формула получится такая.В Excel можно и нажмите клавишу рабочий лист Excel, одномерные могут быть. Синтаксис у этой подсчет, после внесения диапазон ячеек, в случайно дважды щелкнули один диапазон на
Пример 2. Разрешите Вас… транспонировать?
единица. Таким образомЕсли формула массива расположенаC2:C5 мы воспользуемся стандартнойВыделяем ячейку Е9 (напротивдвумерные (НЕСКОЛЬКО строк и Этот способ удобен {=СУММ(А1:А6+2)} писать формулы неF9 получим следующее: горизонтальными и вертикальными. формулы такой: вводных данных достаточно котором она находится. мышью по ячейке второй применяют формулу
суммы всех сделок, не в однойи закрываем скобку
- функцией «СРЗНАЧ», то «Итого»). столбцов, матрица). тем, что приВся формула стоит только в отдельные. Формула B1:B3 будетExcel поддерживает формулы массива Теперь рассмотрим, как=МОБР(массив)
- нажать кнопку Затем нажать на
- диапазона. по следующему шаблону: где заказчик не
ячейке (как в функции СУММ - получим в результатеВводим формулу вида: =СУММ(C3:C8*D3:D8).Одномерные массивы бывают: изменении данных в
Редактирование формулы массива
в фигурных скобках ячейки, но сразу заменена значениями, содержащимися двух видов: многоячеечные же разделяются элементыДля того чтобы рассчитать«OK» кнопкуЕсли вы закроете, это=адрес_массива1*адрес_массива2 ANTON и товар Примере 1), а в итоге должно «0». И этоНажимаем сочетание клавиш: Ctrl
горизонтальными (данные – в столбце, автоматически изменятся – это значит, в диапазоне ячеек. в этих ячейках, и одноячеечные. В в массивах. определитель, применяется функцияв окне аргументовDelete сообщение, нажав наНад диапазонами данных можно не Boston Crab в нескольких ячейках
получиться так: будет правильно. Поэтому + Shift + строке); данные сортировки. Подробнее что это формулу Эти формулы называют т.е. {1:2:3}. Теперь первом случае формула
Пример 3. Таблица умножения
Примеры приведены для русифицированной со следующим синтаксисом: функции или клавишуна клавиатуре. кнопку также выполнять операции
Meat умножаются на (как в Примеречтобы Excel воспринял нашу
- вставляем в формулу
- Enter. Результат:
- вертикальными (данные – в о такой формуле массива. Excel понимаетв достаточно скопировать этот занимает несколько ячеек,
версии Excel.
Пример 4. Выборочное суммирование
=МОПРЕД(массив)EnterПосле этого формула будет«OK» сложения, вычитания, деления ноль и суммируются
2), то Excel формулу как формулу дополнительное условие: 0;A1:A8))’Формула массива в данном столбце). массива читайте в как нужно считать,Excel «формулы массива» массив в Буфер т.е. возвращает вЭлементы в одномерных горизонтальныхУрок:, если ввод выполнялся удалена со всей, а потом попытаетесь и другие арифметические только нужные заказы. не позволит редактировать массива жмем не class=»formula»>. Получаем:
planetaexcel.ru
случае заменила две
Массивы в VBA Excel: одномерные, многомерные и динамические. Объявление и использование массивов. Операторы Public, Dim и ReDim. Функции Array, LBound, UBound.
Массивы – это множества однотипных элементов, имеющих одно имя и отличающиеся друг от друга индексами. Они могут быть одномерными (линейными), многомерными и динамическими. Массивы в VBA Excel, как и другие переменные, объявляются с помощью операторов Dim и Public. Для изменения размерности динамических массивов используется оператор ReDim. Массивы с заранее объявленной размерностью называют статическими.
Одномерные массивы
Объявление одномерных (линейных) статических массивов в VBA Excel:
Public Massiv1(9) As Integer Dim Massiv2(1 To 9) As String |
В первом случае публичный массив содержит 10 элементов от 0 до 9 (нижний индекс по умолчанию — 0, верхний индекс — 9), а во втором случае локальный массив содержит 9 элементов от 1 до 9.
По умолчанию VBA Excel считает в массивах нижним индексом нуль, но, при желании, можно сделать нижним индексом по умолчанию единицу, добавив в самом начале модуля объявление «Option Base 1».
Многомерные массивы
Объявление многомерных статических массивов в VBA Excel аналогично объявлению одномерных массивов, но с добавлением размерностей дополнительных измерений через запятую:
‘Массив двухмерный Public Massiv1(3, 6) As Integer ‘Массив трехмерный Dim Massiv2(1 To 6, 1 To 8, 1 To 5) As String ‘Массив четырехмерный Dim Massiv3(9, 9, 9, 9) As Date |
Третий массив состоит из 10000 элементов — 10×10×10×10.
Динамические массивы
Динамические массивы в VBA Excel, в отличие от статических, объявляются без указания размерности:
Public Massiv1() As Integer Dim Massiv2() As String |
Такие массивы используются, когда заранее неизвестна размерность, которая определяется в процессе выполнения программы. Когда нужная размерность массива становится известна, она в VBA Excel переопределяется с помощью оператора ReDim:
Public Massiv1() As Integer Dim Massiv2() As String ReDim Massiv1(1 To 20) ReDim Massiv2(3, 5, 4) |
При переопределении размерности массива вместо верхнего индекса можно использовать переменную:
Dim Massiv1() as Variant, x As Integer x = 20 ReDim Massiv1(1 To x) |
Переопределять размерность динамических массивов в процессе работы программы можно неоднократно, как по количеству измерений, так и по количеству элементов в измерении.
С помощью оператора ReDim невозможно изменить обычный массив, объявленный с заранее заданной размерностью. Попытка переопределить размерность такого массива вызовет ошибку компиляции с сообщением: Array already dimensioned (Массив уже измерен).
При переопределении размерности динамических массивов в VBA Excel теряются значения их элементов. Чтобы сохранить значения, используйте оператор Preserve:
Dim Massiv1() As String ——— операторы ——— ReDim Massiv1(5, 2, 3) ——— операторы ——— ReDim Preserve Massiv1(5, 2, 7) |
Обратите внимание!
Переопределить с оператором Preserve можно только последнюю размерность динамического массива. Это недоработка разработчиков, которая сохранилась и в VBA Excel 2016. Без оператора Preserve можно переопределить все размерности.
Максимальный размер
Размер массива – это произведение длин всех его измерений. Он представляет собой общее количество элементов, содержащихся в данный момент в массиве.
По информации с сайта разработчиков, максимальный размер массивов зависит от операционной системы и доступного объема памяти. Использование массивов, размер которых превышает объем доступной оперативной памяти компьютера, приводит к снижению скорости, поскольку системе необходимо выполнять запись данных и чтение с диска.
Использование массивов
Приведу два примера, где не обойтись без массивов.
1. Как известно, функция Split возвращает одномерный массив подстрок, извлеченных из первоначальной строки с разделителями. Эти данные присваиваются заранее объявленному строковому (As String) одномерному динамическому массиву. Размерность устанавливается автоматически в зависимости от количества подстрок.
2. Данные в массивах обрабатываются значительно быстрее, чем в ячейках рабочего листа. Построчную обработку информации в таблице Excel можно наблюдать визуально по мерцаниям экрана, если его обновление (Application.ScreenUpdating) не отключено. Чтобы ускорить работу кода, можно значения из диапазона ячеек предварительно загрузить в динамический массив с помощью оператора присваивания (=). Размерность массива установится автоматически. После обработки данных в массиве кодом VBA полученные результаты выгружаются обратно на рабочий лист Excel. Обратите внимание, что загрузить значения в диапазон ячеек рабочего листа через оператор присваивания (=) можно только из двумерного массива.
Функции Array, LBound, UBound
Функция Array
Функция Array возвращает массив элементов типа Variant из первоначального списка элементов, перечисленных через запятую. Нумерация элементов в массиве начинается с нуля. Обратиться к элементу массива можно, указав в скобках его номер (индекс).
Sub Test1() Dim a() As Variant a = Array(«text», 25, «solo», 35.62, «stop») MsgBox a(0) & vbNewLine & a(1) & vbNewLine _ & a(2) & vbNewLine & a(3) & vbNewLine & a(4) End Sub |
Скопируйте код в модуль VBA Excel и запустите его на выполнение. Информационное сообщение MsgBox покажет значения массива, извлеченные по индексу.
Функция LBound
Функция LBound возвращает значение типа Long, равное наименьшему (нижнему) доступному индексу в указанном измерении массива.
Синтаксис:
LBound (arrayname[, dimension])
- arrayname — это имя переменной массива, является обязательным аргументом;
- dimension — это номер измерения массива, необязательный аргумент, по умолчанию принимает значение 1.
Наименьший индекс по-умолчанию может быть равен 0 или 1 в зависимости от настроек оператора Option Base. Нижняя граница архива, полученного с помощью функции Array, всегда равна 0.
При объявлении переменных массивов или переопределении их размерности наименьшие индексы могут быть любыми целыми числами, в том числе отрицательными.
Функция UBound
Функция UBound возвращает значение типа Long, равное наибольшему (верхнему) доступному индексу в указанном измерении массива.
Синтаксис:
UBound( arrayname[, dimension])
- arrayname — это имя переменной массива, является обязательным аргументом;
- dimension — это номер измерения массива, необязательный аргумент, по умолчанию принимает значение 1.
Функция UBound используется вместе с функцией LBound для определения размера массива.
Sub Test2() Dim a(—2 To 53) As String MsgBox «Наименьший индекс = « & LBound(a) & _ vbNewLine & «Наибольший индекс = « & UBound(a) End Sub |
Скопируйте код в модуль VBA Excel и запустите его на выполнение. Информационное сообщение MsgBox покажет значения наименьшего и наибольшего индекса переменной массива a.
Обход массива циклом
Обход одномерного массива циклом For… Next, в котором для определения границ массива используются функции UBound и LBound:
Sub Test3() Dim a() As Variant, i As Long a = Array(«text», 25, «solo», 35.62, «stop») For i = LBound(a) To UBound(a) Debug.Print «a(« & i & «) = « & a(i) Next End Sub |
Результат работы цикла вы увидите в окне Immediate.
Очистка (обнуление) массивов
Первый способ
Очистить любой массив, статический или динамический, без использования цикла можно с помощью оператора Erase. Термин «обнуление» можно применить только к массиву числового типа.
Dim Massiv1(4, 3) As String, Massiv2() As Variant ——— операторы ——— ‘переопределяем динамический массив ReDim Massiv2(2, 5, 3) ——— операторы ——— ‘очищаем массивы Erase Massiv1 Erase Massiv2 |
Обратите внимание, что оба массива при таком способе очистки будут возвращены в исходное состояние, которое они имели сразу после объявления:
- статический Massiv1 сохранит размерность (4, 3);
- динамический Massiv2 не сохранит размерность ().
Второй способ
Динамический массив можно очистить (обнулить) без использования цикла с помощью оператора ReDim. Просто переопределите его с той же размерностью.
Dim Massiv() As Double ——— операторы ——— ‘переопределяем массив ReDim Massiv(5, 6, 8) ——— операторы ——— ‘очищаем массив ReDim Massiv(5, 6, 8) |