Excel

Формулы массива excel: Использование формул массива: рекомендации и примеры

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

Хитрости »

17 Июнь 2012       Дмитрий       95596 просмотров

Основные понятия (26)
Сводные таблицы и анализ данных (10)
Графики и диаграммы (5)
Работа с VB проектом (12)
Power BI и Power Query (22)
Условное форматирование (5)
Списки и диапазоны (5)
Макросы(VBA процедуры) (68)
Разное (43)
Баги и глюки Excel (4)

Если Вы довольно много работаете в Excel то наверняка уже слышали выражение «формула массива«. Так же его часто можно встретить на форумах и сайтах, посвященных Excel. Но не все знают что это такое и тем более, как пользоваться. Главное это не путать формулы массива с функциями для работы с массивами и функциями для работы с базами данных. Итак, не буду затягивать.
Большинство уже наверняка знакомо с функцией СУММ(SUMM).

Она суммирует значения в заданных диапазонах ячеек. Теперь рассмотрим поближе. Запишем в ячейки А1:А5 числа от одного до пяти. В ячейке В1 запишем функцию: =СУММ(A1:A5). Получим сумму этих чисел — 15. Все просто и понятно. И вроде бы — функция уже работает с массивами — ведь группа ячеек А1:А5 по сути уже массив ячеек. Но это не формула массива. А теперь изменим функцию на такую: =СУММ(A1:A5+1). Что я хочу получить от такой функции? Чтобы суммировались значения ячеек А1:А5, но с прибавлением к каждому аргументу 1. Ввожу функцию и… Результат будет 2. Явно что-то не так. Верно, ведь при такой записи Excel произведет сложение ячейки А1 и 1. Все дело в том, что напрямую Excel не понимает, что необходимо производить подобные операции с массивами(т.е. обрабатывать поочередно каждую ячейку). Ему надо явно указать, что мы хотим это сделать и результат при этом вернуть в одну ячейку. Чтобы ему указать это, надо при вводе функции нажать не Enter, как мы привыкли, а целую комбинацию клавиш — Ctrl+Shift+Enter.
Т.е. записали функцию в ячейку и не жмем Enter, чтобы завершить ввод, а жмем Ctrl+Shift+Enter. Функция при таком вводе будет заключена в фигурные скобки — {=СУММ(A1:A5+1)}. Если Вы после ввода их увидели — значит все сделано верно и формула массива введена правильно. И результат будет 20.

Важно:не надо пытаться ввести фигурные скобки вручную с клавиатуры -результатом будет лишь текст в ячейке {=СУММ(A1:A5+1)} и ни о какой формуле и суммировании речи быть уже не может.

Что же происходит внутри функции в этот момент? Все очень просто. Мы в ячейки А1:А5 ввели поочередно цифры от 1 до 5. Т.е. получили: 1, 2, 3, 4, 5. В сумме они дают 15. Я разложу на слагаемые: =СУММ(1;2;3;4;5). Теперь мы изменили функцию и ввели её как формулу массива: {=СУММ(A1:A5+1)}. И внутри происходит сначала прибавление к каждому числу 1, а затем сложение уже измененных аргументов: =СУММ(1+1;2+1;3+1;4+1;5+1)⇒=СУММ(2;3;4;5;6)


Рассмотрим еще один пример, когда формула массива может решить задачу непосильную стандартной формуле(да еще и в одной ячейке без доп. столбцов). Необходимо получить минимальное значение из массива чисел: 0;1;5;5;9;0;6;2;6;3
Применив обычную формулу =МИН(A1:A10) мы получим нуль. Что будет верным. Но если нам как раз нуль учитывать не надо? Мы можем ввести такую формулу:
=МИН(ЕСЛИ(A1:A100;A1:A10))
=MIN(IF(A1:A100,A1:A10))
Казалось бы условие задано верно и мы должны получить нужный результат, т.е. 1. Но! Т.к. это простая формула, она обрабатывает не массив значений, а только первое значение массива(A1:A10) из условия ЕСЛИ, т.е. только А1. Сама по себе функция ЕСЛИ не станет работать с массивом значений в данном случае. Это означает, что формула не просматривает весь заданный массив. Но если ввести её как формулу массива

{=МИН(ЕСЛИ(A1:A100;A1:A10))}
то в таком случае формула последовательно просмотрит каждое значение из массива на предмет выполнения условия и выполнит необходимые вычисления, заданные в этой формуле, так как будто бы мы последовательно для каждой строки в отдельном столбце вывели результат выполнения заданного условия ЕСЛИ и уже по этим результатам определили минимальное значение. И результат формулы будет — 1.


Так же формула массива может вернуть несколько значений. Очень наглядно это демонстрирует функция ТРАНСП(TRANSPOSE). Функция преобразовывает вертикальный массив в горизонтальный и наоборот. Массив может быть многомерным. Как работает функция(на примере исходного диапазона A1:C10):

  • выделяем диапазон ячеек(D1:M3), равный по количеству ячеек исходному диапазону значений(A1:C10), которые необходимо транспонировать
  • вписываем функцию ТРАНСП(TRANSPOSE)
  • в качестве аргумента указываем ссылку на исходный диапазон значений: =ТРАНСП(A1:C10)
  • завершаем ввод функции сочетанием клавиш Ctrl+Shift+Enter.

В диапазоне D1:M3 получим транспонированную таблицу. При написании функции следует учитывать, что число строк в диапазоне функции(D1:M3) должно быть равно числу столбцов в исходном диапазоне(A1:C10), а число столбцов — числу строк. Если указать меньше — не все значения будут транспонированы. Если больше — то все лишние ячейки будут заполнены значениями #Н/Д(#N/A).

Какие особенности подобного применения функций массива:

  • во всех ячейках формула отображается совершенно одинаково, даже если ссылки на ячейки относительные. Это не должно вас пугать — так надо;
  • ячейки диапазона, в который подобным образом введена формула массива нельзя изменять по отдельности — только все вместе. В противном случае просто получите сообщение «Нельзя изменять часть массива!». Бывает очень удобно иногда в целях защиты формул от изменений.

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

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

Важно: начиная с Excel 2021 и в Excel 365 появились динамические массивы. С их появлением выделять сразу несколько ячеек для ввода формулы массива не обязательно — они сами определяют будущий размер области результата. Так же динамические массивы не требует ввода тремя клавишами Ctrl+Shift+Enter


Статья помогла? Поделись ссылкой с друзьями!

    Видеоуроки
Поиск по меткам

Accessapple watchMultexPower Query и Power BIVBA управление кодамиБесплатные надстройкиДата и времяЗапискиИПНадстройкиПечатьПолитика КонфиденциальностиПочтаПрограммыРабота с приложениямиРазработка приложенийРосстатТренинги и вебинарыФинансовыеФорматированиеФункции Excelакции MulTExссылкистатистика

Формула массива Excel. Как пользоваться?

Промежуточные итоги в Excel

Специальная вставка в Excel

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

Какие преимущества можно получить при использовании формул массива?

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

Итак, начнем с самих массивов. Объясняя простым языком, массив представляет собой набор данных, обрабатываемых в Excel одним параметром (аргументом).

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

Содержание

  • Пример 1. Формула массива Excel
  • Пример №2. Практическое применение
  • И напоследок еще раз обозначу  условия использования формул массива
  • Похожие статьи
Пример 1.
Формула массива Excel

Имеются два диапазона чисел. Нам требуется получить сумму произведений диапазонов. Обычный пример можно реализовать так: добавляется дополнительный, третий по счету столбец (либо строчка), после чего получается произведение и делается суммирование всего столбца.

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

=СУММ()

После этого определим аргументы, представляющие сумму этого массива в виде произведения из двух массивов, таким образом:

=СУММ(Диапазон1*Диапазон2)

В нашем случае

=СУММ(A1:A10*B1:B10)

В завершении нажимаем одновременно клавиши в следующей комбинации: CTRL+Shift+Enter

Нажатие этого сочетания и означает запуск Формулы массива! Конечная формула будет заключена в фигурные скобки {}

{=СУММ(A1:A10*B1:B10)}

Нюанс. Имеется специальная функция, =СУММПРОИЗВ(), предназначенная для получения суммы сразу всех произведений в массиве.

Пример №2. Практическое применение

Требуется определить сумму 1-го, 3-го и 10-го наибольших элементов из набора данных (диапазона B1:B10). Не прибегая к ФМ это делается так: сортируем по убыванию таблицу, воспользуемся дополнительным столбцом, проставляем в нем порядковые номера и извлекаем сумму при помощи функции =СУММЕСЛИ().

Но формулой массива все делается проще:

=СУММ(НАИБОЛЬШИЙ(B1:B10;{1;3;10}))

1. Здесь функция =НАИБОЛЬШИЙ() осуществляет поиск по убыванию элементов, которые были заданы (в нашем случае это 10, 8 и 1) в диапазоне данных B1:B10

2. Суммирование данного массива происходит с использованием известной функции =СУММ().

3. CTRL+Shift+Enter, не забываем

Удобно!

Пример файла

И напоследок еще раз обозначу  условия использования формул массива

— завершаем ввод формулы комбинацией клавиш вида Ctrl+Shift+Enter;

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

 

Промежуточные итоги в Excel

Специальная вставка в Excel

Формулы матрицы Excel и функция Sumproduct

  1. Aurora Training Advantage
  2. на вебинаре по требованию
  3. Формулы матрица Excel и функция Sumproduct
Информация о вебинаре $ 219
  • RED:
    • REPATED: