Progress-servis55.ru

Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Exceltip

Блог о программе Microsoft Excel: приемы, хитрости, секреты, трюки

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

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

Что такое массив?

В Excel массив – это диапазон ячеек. Ниже приведены несколько примеров. Массивы в Excel бывают двухмерные и одномерные. Одномерные в свою очередь делятся на горизонтальные и вертикальные.

Когда мы говорим о формулах массива, мы подразумеваем, что это нормальная формула Excel (СУММ, МАКС, СЧЁТЕСЛИ…), но немного измененная, чтобы принять в качестве входных данных массив или набор массивов. Это то, что лежит в основе формул массива и делает его столь мощным.

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

Результатом в этом случае будет адрес ячейки с наименьшим значением в данном диапазоне. Как вы можете увидеть, при обновлении данных в диапазоне, результат тоже меняется. Подобного эффекта можно также добиться с помощью обычной формулы =АДРЕС(ПОИСКПОЗ(МИН(A1:A9);A1:A9;0);1). Однако ж мы только начали изучение, в дальнейшем вы обнаружите, что некоторые вещи можно делать только с помощью формулы массива, либо с большим количеством обычных формул.

Части формул массивов в Excel

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

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

Массив констант в формулах массивов

Массив констант – это набор статических значений. Эти значения не ссылаются на другие ячейки или диапазоны. Поэтому они будут всегда одинаковыми независимо от изменений происходящих на листе.

Горизонтальный массив констант

Горизонтальный массив констант вводиться как последовательность чисел, разделенных точкой с запятой (;), заключенных в фигурные скобки. Например: <1;2;3;4;5>. Горизонтальные массивы могут быть использованы в качестве входных данных для формулы массива. Они также могут быть введены в таблицу, как показано ниже.

Вертикальный массив констант

В отличие от горизонтального, в вертикальном массиве констант значения разделяются двоеточием (:) и также заключаются в фигурные скобки. Например: <1:2:3:4:5>.

Операторы массива в формулах массивов

Оператор массива сообщает формуле, какую операцию необходимо совершить над массивами, предоставленными в качестве массива. К тому же, вы можете использовать операторы И (альтернативный вариант написания — *) и ИЛИ альтернативный вариант написания — +).

Оператор массива И

Оператор И возвращает значение ИСТИНА в случаях, когда все условия выражения возвращают значение ИСТИНА. Пример ниже показывает использование оператора массива И (*) между массивами:

Оператор массива ИЛИ

Оператор ИЛИ возвращает значение ИСТИНА, если хотя бы один из условий выражения возвращает значение ИСТИНА. Пример ниже показывает использование оператора массива ИЛИ (+) между массивами:

Что такое диапазон массива?

Диапазон массива вводиться точно также, как и обычная формула (например, A1:A10). Их не обязательно сразу же заключать в скобки (Например, =СУММ(ЕСЛИ((A1:A10)=10;10;»»)) ) или (=СУММ(ЕСЛИ((A1:A10=10);10;»»))). Но для упрощения отладки, я предпочитаю сразу установить скобки в формулах.

Синтаксис формул массивов

Возможно, вы уже получили кое-какое представление об этой части статьи. Все что вам нужно, чтобы написать формулу массива – это использовать в качестве аргументов массив и нажать сочетание клавиш Ctrl + Shift + Enter. Давайте рассмотрим некоторые основные моменты синтаксиса формул массивов.

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

Скажем, у вас есть набор данных в ячейках D2:D10 и вы хотите отсортировать их в порядке возрастания. Вы уже наверное догадались, что нам понадобиться функция НАИМЕНЬШИЙ(), которая возвращает n-ое наименьшее значение и заданного диапазона. Нам также понадобиться диапазон, где мы будем производить вычисления.

Обычная функция НАИМЕНЬШИЙ для одной ячейки выглядит следующим образом =НАИМЕНЬШИЙ(D2:D10;1). Такая формула вернет нам наименьшее значение диапазона D2:D10. Но нам необходимо скопировать эту функцию во все остальные ячейки и внести изменения во второй аргумент, чтобы получить отсортированный список. Для начала выделим диапазон, в котором мы хотим увидеть список, затем вводим формулу в первую ячейку и жмем Ctrl + Shift + Enter. Формула будет скопирована на весь диапазон, результатом станет отсортированный список.

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

Предположим, мы хотим выяснить имя менеджера с наибольшими продажами. Вот где обнаруживается истинная мощь формул массивов. Ели бы мы использовали обычные формулы, нам понадобилось бы столько же строк, сколько менеджеров, если не больше. Однако мы можем сделать тоже самое в одну формулу массива =СМЕЩ(A1;МАКС(ЕСЛИ(СУММЕСЛИ((A2:A10);(A2:A10);(D2:D10))=МАКС(СУММЕСЛИ((A2:A10);(A2:A10);(D2:D10)));СТРОКА(A2:A10);»»))-1;0). То, что мы делаем здесь – это сравниваем сумму продаж конкретного менеджера с суммой продаж максимального менеджера. Если условие истинно, возвращает номер строки. Функция ЕСЛИ возвращает массив номеров строк, относящихся к менеджеру с наибольшим показателем продаж, в противном случае возвращается пустота. С помощью функции МАКС мы находим строку, где происходит последнее вхождение имени, а затем с помощью функции СМЕЩ возвращаем имя из этой строки.

Консолидация данных по более чем одному условию

Мы также можем использовать формулу массива для поиска суммы продаж менеджера с максимальными продажами. Функция ЕСЛИ возвращает массив отдельных сумм продаж менеджера совпадающего с менеджером с максимальными продажами, иначе 0. Затем мы используем функцию СУММ для суммирования всех этих значений массива.

Еще один пример консолидации данных по условию

Теперь попробуйте сами. Дайте мне сумму продаж всех записей, в которых 1) менеджер — Фёдор Абрамов И продукт Книги 2) Продажи >= 500. Подумайте минутку.

Мы можем достичь этого с помощью формулы массива =СУММ(ЕСЛИ(((A2:A10=»Фёдор Абрамов»)*(B2:B10=»Книги»))+((D2:D10>=500));D2:D10;0)). Так что же мы здесь сделали? Мы проверили три условия – первые два были скомбинированы с помощью оператора И (*) и третье было добавлено с помощью оператора ИЛИ (+). В результате получилась структурированная формула массива, где были указаны все три условия в качестве аргумента функции ЕСЛИ. Функция ЕСЛИ в свою очередь генерирует массив со значениями из четвертого столбца, когда оно принимает значение ИСТИНА и 0, если ЛОЖЬ. Результат, конечно, представляет собой сумму продаж отвечающим всем трем, указанным выше, условиям.

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

Массивы и формулы массива в Excel.

Для начала следует понимать, что такое массив и какие массивы бывают.

Массивом называют группу данных объединенных (сгруппированных) в одну структуру (группу)

Читать еще:  В ячейку excel можно записать

В «Excel» массивы подразделяют на три типа в зависимости от структуры расположения данных в таблице:

Горизонтальный одномерный (линейный) массив – массив, в котором данные расположены горизонтально в одну строку.

Вертикальный одномерный (линейный) массив – массив, в котором данные расположены вертикально в один столбец.

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

Формулы (функции) массивов.

Для работы с массивами в «Эксель» предусмотрены специальные формулы – формулы массивов.

Формулы массивов в свою очередь классифицируются на формулы, которые выводят (рассчитывают) единичный результат, и формулы которые рассчитывают и выдают результат в виде массива (матрицы).

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

Рассмотрим в качестве примера смету состоящую из столбцов «Количество», «Трудозатраты на единицу», «Стоимость одного чел часа».

Смета на проведение работ в Excel.
Вид работКоличествоТрудозатраты на единицуСтоимость одного чел часа
Прокладка кабеля, м250,5123
Укладка тротуарной плитки, м²450,125244
Покраска металлических поверхностей, м²40,2233
Монтаж дверного замка, шт.120,840
Итого:3480,4

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

Рассмотрим функцию массива ТРАНСП(). Эта функция полностью относится к функциям массива и производить транспонирование выделенного массива, то есть меняет местами столбцы и строки (переворачивает таблицу). Чтобы использовать данную функцию следует:

  • Выделить диапазон, в который планируете транспонировать таблицу (если в исходной таблице четыре столбца и шесть строк, то выделяем шесть столбцов и четыре строки);
  • В строке функций пишем =ТРАНСП();
  • В скобках указать массив, который вы хотите транспонировать (перевернуть) и нажать клавишу «ENTER».

Пример как работать с формулой массива в таблице Excel

Как узнать, является ли данная формула формулой массива? Что вообще она означает?

На этапе создания формула (или также функция) сама по себе не является ни формулой массива, ни обычной формулой. Это вы определяете, как Excel должен истолковать формулу, которую вы вводите. То, что формула является формулой массива – это не столько особенность самой формулы, а скорее способом, которым программа Excel введенную формулу «обрабатывает». Подтверждение формулы с помощью сочетания клавиш «Ctrl + Shitf + Enter» – это является для Excelя командой на выполнение (обработку данных) как массив вычислений. Тогда он используется в качестве аргумента функции и возвращает в качестве результата вычислений таблицу (массив данных).

Примеры формул массива и отличие от обычных формул в Excel

Некоторые функции Excelя по умолчанию в качестве аргумента принимают диапазон ячеек (массив) и в результате возвращают одно значение. Отличными примерами являются функции СУММ, СЧЕТЕСЛИ, СРЗНАЧ и т.д. Для этих функций не имеет никакого значения, вводите ли вы их как функции массива или нет. Они и так обрабатывают таблицы, и найдут выход (сработают правильно) из любой ситуации. Вот такие маленькие Excel-евские приспособленцы.

К счастью, существуют другие функции, которые работают совершенно иначе, т.е. в зависимости от вашего решения относительно их принадлежности к «функциям массива» (иногда они вообще не хотят работать). Прекрасным примером является функция ЕСЛИ.

Когда формула является формулой массива, а когда обычной?

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

<23;-32;15;7>– это синтаксис массива значений в Excel. Он может быть использован в аргументах функций.

Диапазон ячеек A1:A4 – так же является массивом значений в Excel. Естественно так же используется в аргументах функций. Например сравним результаты вычислений двух формул: =СУММ(A1:A4) и =СУММ(<23;-32;15;7>) – они идентичны:

Визуально формула массива находится так же внутри фигурных скобок, но они не должны быть введены вручную, а только лишь при помощи комбинации клавиш CTRL+SHIFT+Enter. Если ввести вручную фигурные скобки, то формула не будет выполнятся в массиве – это будет синтаксическая ошибка в Excel.

Формула массива (введенная с помощью сочитания CTRL+SHIFT+Enter) будет использоваться везде, где вы хотите, чтобы функция, которая обычно работает с отдельными значениями (ячейками), внезапно повела себя иначе и приняла в качестве аргумента и вернула в качестве результата массив значений (таблицу). Вернемся к уже упомянутой функции ЕСЛИ. В качестве аргумента она принимает логическое значение ИСТИНА или ЛОЖЬ. В классической форме:

Если значение в ячейке A1 больше нуля, в качестве аргумента функция получит значение ИСТИНА и в качестве результата вернет текстовую строку «больше». Однако, если бы вы хотели проверить несколько ячеек сразу и передать результат такой проверки другой функции, вы должны были бы использовать вышеуказанную формулу как формулу массива. Для этого при вводе нажмем сочитание клавиш CTRL+SHIFT+Enter, а не как обычно (просто Enter):

В качестве аргумента функция принимает целый диапазон $A$1:$A$4. В результате проверки каждой ячейки диапазона в памяти компьютера создается таблица значений в массиве. Схематически таблицу можно отобразить так:

А так выглядят эти значения в массиве:

Например, чтобы прочитать этот массив и получить второе значение (сделать выборку значений) воспользуемся функцией:

Тоже самое что и:

Затем создается другая таблица, значения которой зависят непосредственно от значений в первой таблице. Если элемент в первом массиве имеет значение ИСТИНА, во втором массиве он примет значение «больше». Если он имеет значение ЛОЖЬ, элемент во второй таблице примет значение «меньше». После этой операции первая таблица удаляется из памяти компьютера, и в конечном счете, функция возвращает массив <"больше", "меньше", "больше", "больше">. Схематически вторую таблицу можно отобразить так:

Так же ее можно прочитать функцией:

В примере с функцией ЕСЛИ была введена формула массива только в одну ячейку, поэтому в результате получили только одно значение, соответствующее первому значению в таблице. Однако достаточно ввести формулу массива в диапазон ячеек, чтобы увидеть все значения массива результатов. Для этого выделяем диапазон из нескольких ячеек, нажимаем клавишу F2 (или заново вводим формулу вручную) и жмем CTRL+SHIFT+Enter.

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

Примеры как использовать формулу массива в Excel

Это все хорошо, но возникают некоторые вопросы: «Зачем же нужна формула массива?» или «Как или где использовать формулу в массиве?», «Чем она лучше обычной формулы?».

Разумеется, массив, возвращаемый функцией ЕСЛИ, может передаваться далее на «обработку» в качестве аргумента для другой функции.

Пример. Представим, что вы хотели бы найти сумму ячеек B7:B10, но только тех, которые имеют значение больше нуля. Конечно же, вы можете использовать функцию СУММЕСЛИ, однако в нашем примере мы хотим сделать это только с помощью формулы массива. Суммируя значения ячеек нашего диапазона, необходимо будет как-то избавиться от значения «-32». Функции СУММ необходимо передать массив, в котором содержатся только значения больше нуля. Везде там, где значение меньше нуля, мы заменяем его на ноль, что, конечно же, не повлияет на результат. Как вы уже знаете, временную таблицу с соответствующими значениями вы можете получить, используя функцию ЕСЛИ. В конечном итоге соответствующая формула будет выглядеть так:

Читать еще:  Ограничение на ячейку excel

0;$A$1:$A$4;0))’ >

Вводим формулу и не забываем для подтверждения ввода нажать комбинацию клавиш CTRL+SHIFT+Enter. В результате проверки каждой ячейки диапазона $A$1:$A$4 (является ли значение больше нуля) в памяти компьютера создается массив <ИСТИНА; ЛОЖЬ; ИСТИНА; ИСТИНА>. Затем создается очередная таблица. Если элемент в первом массиве имеет значение ИСТИНА, то во второй таблице будет отображаться значение из соответствующей ячейки. Если он имеет значение ЛОЖЬ, то элемент во второй таблице примет значение 0. После этой операции первая таблица удаляется из памяти компьютера, и в конечном итоге функция ЕСЛИ возвращает массив <23; 0; 15; 7>. Затем эта таблица передается в качестве аргумента функции =СУММ(<23; 0; 15; 7>), которая, согласно своему предназначению, возвращает сумму всех элементов в таблице. В нашем примере сумма равна 45. В завершении, посмотрите, что произойдет, если вы скажете Excelю обработать приведенную выше формулу не как формулу массива.

Ни одна из описанных выше таблиц, в этом случае, не будет создана. Только одна ячейка диапазона будет проверена (ячейка в той же строке, в которой находится функция). В нашем случае 15>0 значит, как первый аргумент функция ЕСЛИ получит логическое значение ИСТИНА. Затем ВЕСЬ диапазон A1:A4 будет передан функции СУММ, и в результате функция возвращает значение равное 13 (23-32+15+7). Если бы в ячейке вместо значения 15 было число меньше нуля, функция ЕСЛИ в качестве аргумента получила бы значение ЛОЖЬ, и, следовательно, только значение нуля было бы передано функции СУММ. Наша функция СУММ в результате также вернет значение равное нулю.

Как отличать формулу массива от обычной формулы

При нажатии клавиш CTRL+SHIFT+Enter для подтверждения ввода в строке формул будут отображены фигурные скобки по краям. Значит данная формула выполняется в массиве. Но что если еще на этапе создания неизвестно какой тип формул следует применять?

Правильное «распознавание», когда следует нажимать CTRL+SHIFT+Enter, а когда просто Enter полностью зависит от понимания того, как работают массивы в формулах. Когда вы это поймете, сможете сказать, что конкретную формулу следует вводить (подтверждать) сочетанием клавиш – CTRL+SHIFT+Enter.

Конечно же, не подтвержденная, а просто как формула также может возвращать КАКОЙ-ТО результат (в чем вы могли только что убедиться сами). Однако, если вы сможете прочитать формулу и понять механизм, то вы заметите, что такой результат является ОШИБОЧНЫМ. И поэтому для правильной работы формулы вам необходимо ее подтвердить «Ctr+Shift+Enter». Как и все, понимание и использование формул массива требует практики. Тем не менее, стоит некоторое время посвятить тому, чтобы во всем разобраться. Потому что формулы массива позволяют решить многие проблемы, которые на первый взгляд могут казаться неразрешимыми.

Примеры вычислений и анализа формул массива

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

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

Нажмите клавишу F9 (или «Пересчет» в правом верхнем углу меню «Формулы»), и вы получите (в строке формулы) значения аргументов, которые используются для вычислений, как показано ниже:

— запись с использованием двоеточий означает, что мы имеем дело с элементами вертикального (столбикового) массива, элементы горизонтального (строкового) разделены стандартным символом — «;» (точкой с запятой).

Пример 2: Снова перейдите на ячейку с формулой массива, но на этот раз выделите первый аргумент функции целиком вместе со знаком сравнения «>» и значением критерия – «0»).

Нажмите кнопку F9, и вы получите массив результатов вычислений, как показано ниже:

То есть, созданный в памяти компьютера массив:

Пример 3: Выделите ячейку формулой массива где в функцию СУММ вложена функция ЕСЛИ. Затем в строке формул выберите весь аргумент функции СУММ (вместе с функцией ЕСЛИ):

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

То есть, созданный в памяти компьютера массив:

Пример 4: Просто перейдите на ячейку с формулой B1 и выберите инструмент «ФОРМУЛЫ»-«Зависимости формул»-«Вычислить формулу»

После чего нажмите на кнопку «Вычислить»:

В результате ссылка на диапазон ячеек в аргументе вложенной функции ЕСЛИ разложилась на массив значений. Снова нажмите на кнопку «Вычислить»:

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

Часто неопытные пользователи Excel возмущаются, что формула не работает. В конце концов оказалось, как легко догадаться, формулу в массиве вводили как обычную (просто Enter). Речь идет не о недоразумении, которое произошло, а о том факте, что у этих пользователей возникает вопрос: как избегать таких ошибок? Поэтому важно сразу во всем разобраться, чтобы в дальнейшем больше не задавать таких вопросов.

Excel. Некоторые примеры использования формул массива

Если ранее вы не сталкивались с формулами массива, рекомендую прочитать:

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

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

Если вы уже постигли азы, предлагаю вам продолжить знакомство с формулами массива вместе с Джоном Уокенбахом и его книгой MS Excel 2007. Библия пользователя. – М.: Издательский дом «Вильямс», 2008. – 816 с.

Cкачать заметку в формате Word, примеры в формате Excel

Создание массивов на основе значений ячеек диапазона

На рис. 1 показан рабочий лист, содержащий данные в диапазоне A1:C4. Диапазон D8:F11 содержит массив, созданный на основе этих данных с помощью формулы

Рис. 1. Создание массива на основе значений ячеек диапазона

Массив в диапазоне D8:F11 связан со значениями диапазона A1:C4. Если изменить какое-либо значение в последнем диапазоне, то автоматически изменится соответствующее значение в массиве D8:F11.

Создание массива констант на основе значений диапазона ячеек

В предыдущем примере формула массива в ячейках D8:F11, по существу, являлась ссылкой на диапазон A1:C4. Чтобы «разорвать» эту связь и создать массив констант, выполните ряд действий.

  1. Выделите диапазон, содержащий формулу массива (в этом примере – D8:F11).
  2. Нажмите клавишу , чтобы перейти в режим редактирования формулы.
  3. Нажмите клавишу , чтобы преобразовать ссылки на ячейки в соответствующие значения.
  4. Нажмите комбинацию клавиш .

Теперь в диапазоне D8:F11 находится следующий массив: <1; " кот " ;3:4;5; " собака " :7;89;9,12: " обезьяна " ;11;44>. На рис. 2 показано, как этот массив выглядит в строке формул.

Рис. 2. После нажатия клавиши в строке формул отобразится массив констант

Выполнение операций над массивами

Следующая формула массива создает прямоугольный массив и умножает каждый его элемент на 2: <=<1;2;3;4:5;6;7;8:9;10;11;12>*2> (рис. 3)

Рис. 3. Результат умножения массива на 2

Следующая формула умножает каждый элемент массива на самого себя: <=<1;2;3;4:5;6;7;8:9;10;11;12>*<1;2;3;4:5;6;7;8:9;10;11;12)>. Эту формулу можно переписать в более компактном виде: <=<1;2;3;4:5;6;7;8:9;10;11;12>^2>. Если массив хранится в диапазоне ячеек (допустим, А1:С4), то подобная формула возвратит квадрат каждого элемента этого массива: <=А1:С4^2>(рис. 4).

Читать еще:  Excel vba вызов формы

Рис. 4. Возведение значений массива в квадрат

Применение функций к массивам

В операциях над массивами можно использовать функции. Следующая формула массива, которую нужно ввести в вертикальный диапазон, состоящий из 10 ячеек, вычисляет квадратные корни каждого элемента массива: <=КОРЕНЬ(<1:2:3:4:5:6:7:8:9:10))>. Если массив хранится в диапазоне ячеек (например, А1:А10), подобная формула выполнит эти же вычисления для каждого элемента массива: <=КОРЕНЬ(А1:А10)>(рис. 5).

Рис. 5. Извлечение квадратного корня из элементов массива

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

При транспонировании массива его строки становятся столбцами, а столбцы — строками. Если массив одномерный, то при транспонировании горизонтальный массив становится вертикальным и наоборот. Для выполнения операции транспонирования используется функция Excel ТРАНСП. Допустим, имеется одномерный горизонтальный массив <1; 2; 3; 4; 5>, расположенный в диапазоне А1:Е1. С помощью функции ТРАНСП можно преобразовать его в вертикальный массив. Для этого выделите вертикальный диапазон, состоящий из пяти ячеек, введите формулу =ТРАНСП(А1:Е1) и нажмите комбинацию клавиш (рис. 6).

Рис. 6. Транспонирование одномерного массива

Транспонирование двухмерных массивов выполняется подобным образом. На рис. 7 показан двухмерный массив в диапазоне A1:D3. Формула <=TPAHCП(A1:D3)>создает в диапазоне F1:H4 транспонированный массив.

Рис. 7. Транспонирование двумерного массива

Генерирование последовательности натуральных чисел

С помощью формул массивов легко генерировать последовательности натуральных чисел. Для этого идеально подходит функция СТРОКА, возвращающая номер строки. Рассмотрим формулу массива, введенную в вертикальный диапазон, состоящий из 12 ячеек: <=СТРОКА(1:12)>. Эта формула возвращает массив из 12 элементов, содержащий числа от 1 до 12 (рис. 8). Отметим, что данная формула возвращает правильный результат, независимо от того, где расположен диапазон, в который вводится эта формула.

Рис. 8. Последовательности натуральных чисел на основе функции СТРОКА

Если вы поэкспериментируете с приведенной формулой, то обнаружите присущий ей недостаток: при добавлении новой строки выше диапазона, где расположена эта формула, Excel изменит номера строк, и формула автоматически преобразуется в формулу, возвращающую значения от 2 до 13: <=СТРОКА(2:13)>(рис. 9).

Рис. 9. Добавление строки над массивом изменяет ряд чисел

Приведем формулу массива, которая лишена этого недостатка: <=СТРОКА(ДВССЫЛ( " 1:12 " ))>. Эта формула использует функцию ДВССЫЛ, аргументом которой является текстовая строка. Excel не изменяет этот аргумент при вставке или удалении строк на рабочем листе, поэтому данная формула всегда возвращает правильный результат, состоящий из чисел от 1 до 12 (рис. 10).

Рис. 10. Последовательность натуральных чисел на основе функции ДВССЫЛ не меняется при добавлении строк над массивом

Функции, возвращающие массив. Результатом выполнения некоторых функций Excel является массив. Чтобы такие функции возвращали правильный результат, выделите диапазон, введите формулу, содержащую одну из этих функций, как формулу массива. Вот несколько функций, которые возвращают массив: ПРЕДСКАЗ, ЧАСТОТА, РОСТ, ЛИНЕЙН, ЛГРФПРИБЛ, МОБР, МУМНОЖ и ТЕНДЕНЦИЯ. Дополнительную информацию об этих функциях можно найти в справочной системе Excel.

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

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

Подсчет количества символов в диапазоне

Если необходимо подсчитать общее количество символов в определенном диапазоне, то традиционный метод выполнения этой задачи состоит в том, чтобы найти количество символов в каждой ячейке диапазона, например, с помощью формулы =ДЛСТР(А1), и затем суммировать эти значения (рис. 11). Формула массива <=СУММ(ДЛСТР(А1:А10))>выполняет эти вычисления без промежуточных формул. Эта формула с помощью функции ДЛСТР создает виртуальный массив в памяти компьютера, содержащий количество символов каждой ячейки диапазона, а затем суммирует элементы виртуального массива.

Рис. 11. Одна формула массива заменяет целый ряд отдельных формул

Суммирование трех наименьших значений диапазона

Предположим, что имеется диапазон чисел, названный Данные, и вы хотите узнать сумму трех наименьших чисел этого диапазона. Формула массива решает эту задачу: <=СУММ(НАИМЕНЬШИЙ(Данные;<1;2;3>))> (рис. 12). Здесь в качестве второго аргумента в функции НАИМЕНЬШИЙ используется массив констант. Это вынуждает Excel сгенерировать виртуальный массив, содержащий три наименьших значения из диапазона Данные. Затем к этому виртуальному массиву применяется функция СУММ, которая суммирует его элементы и возвращает искомый результат.

Рис. 12. Формула массива возвращает сумму трех наименьших значений поименованного диапазона Данные (A1:А10)

Подсчет количества ячеек, содержащих текст

В следующей формуле функция ЕСЛИ используется для проверки содержимого каждой ячейки диапазона. Затем создается виртуальный массив (того же размера, что и исходный), в котором содержатся числа 1 (если в ячейке находится текст) и 0 (в противном случае). Новый массив передается в функцию СУММ, которая возвращает сумму элементов массива. В итоге получаем количество ячеек, содержащих текст: <=СУММ(ЕСЛИ(ЕТЕКСТ(А1:D5);1;0))>. На рис. 13 показан пример использования этой формулы в ячейке С8. В результате выполнения функции ЕСЛИ создается виртуальным массив <0;1;1;1:1;0;0;0:1;0;0;0:1;0;0;0:1;0;0;0>. Обратите внимание на то, что виртуальный массив состоит из пяти строк, содержащих по четыре элемента (т.е. тот же размер, что и исходный массив). Функция СУММ суммирует значения этого виртуального массива.

Рис. 13. Формула массива возвращает число ячеек диапазона, содержащих текст

Следующая формула выполняет туже работу, но записана в более компактном виде <=СУММ(ЕТЕКСТ(A1:D5)*1)>. Здесь вместо функции ЕСЛИ используется тот факт, что ИСТИНА*1=1, а ЛОЖЬ*1=0

Исключение промежуточных формул

Одно из достоинств формул массивов заключается в том, что они позволяют исключать промежуточные формулы (и соответственно результаты промежуточных вычислений) с рабочих листов. Это делает таблицы на рабочих листах более компактными и понятными. На рис. 14 показан рабочий лист, содержащий баллы студентов до и после выполнения тестов. В столбце D содержатся формулы, вычисляющие разность между этими баллами, в ячейке D12 – формула, вычисляющая среднее значение этих разностей: =CPЗHAЧ(D2:D11).

Рис. 14. Вычисление среднего с помощью промежуточных формул и с помощью одной формулы массива

С помощью следующей формулы массива, записанной в ячейке С15, можно исключить промежуточные вычисления в столбце D: <=СРЗНАЧ(С2:С11-В2:В11)>. В этой формуле используются два массива, содержащиеся в диапазонах С2:С11 и В2:В11. Формула создает виртуальный массив, состоящий из разностей значений этих двух массивов. Этот виртуальный массив хранится в памяти компьютера, а не в рабочем листе Excel. Функция СРЗНАЧ использует этот виртуальный массив в качестве своего аргумента и возвращает среднее его элементов. Виртуальный массив имеет вид <27;18;18;10;3;8;0;17;8;-8>. Поэтому в данном случае предыдущая формула принимает вид =СРЗНАЧ(<27;18;18;10;3;8;0;17;8;-8>)

Аналогично создаются и работают формулы массивов, вычисляющие различные характеристики диапазонов данных. Например, следующая формула находит максимальное число среди разностей значений диапазонов С2:С11 и В2:В11: <=МАКС(C2:C11-B2:B11)>. Эта формула вернет число 27. А эта формула <=МИН(C2:C11-B2:B11)>возвращает наименьшее число разностей значений двух диапазонов. Формула вернет число -8.

Использование массивов вместо ссылок на диапазоны

Если в формулах используются ссылки на диапазоны, то их можно заменить на массивы констант. Это очень удобно, если значения в диапазонах, на которые указывают ссылки, не будут изменяться. [1]

На рис. 15 представлена таблица, в которой производится поиск названия заданного числа. Например, если 9 – искомое значение, то формула вернет слово Девять. В ячейку С1 введена следующая формула: =ВПР(В1;D1:Е10;2;ЛОЖЬ). Вместо ссылки на таблицу можно использовать двухмерный массив. Формула, приведенная ниже, работает аналогично предыдущей, но не использует таблицу, которая находится в диапазоне D1:E10.

Рис. 15. Таблицу, в которой производится поиск, можно заменить массивом констант

[1] К сожалению, в функциях, работающих с базами данных (например, БДСУММ), нельзя заменить ссылку на диапазон, содержащий критерии, массивом констант.

Ссылка на основную публикацию
Adblock
detector