Терминология
Под массивом обычно понимают набор данных, объединенных в группу. Массивы бывают одномерные (элементы массива образуют строку или столбец) или двумерные (матрица). Легко сообразить, что почти в любой таблице Excel при желании можно найти один или несколько таких массивов:
Формулы массива в Excel — это специальные формулы для обработки данных из таких массивов. Формулы массива делятся на две категории — те, что возвращают одно значение и те, что дают на выходе целый набор (массив) значений. Рассмотрим их на простых примерах…
Пример 1. Классика жанра — товарный чек
Задача: рассчитать общую сумму заказа. Если идти классическим путем, то нужно будет добавить столбец, где перемножить цену и количество, а потом взять сумму по этому столбцу. Если же применить формулу массива, то все будет гораздо красивее:
- выделяем ячейку С7
- вводим с клавиатуры =СУММ(
- выделяем диапазон B2:B5
- вводим знак умножения (звездочка)
- выделяем диапазон C2:C5 и закрываем скобку функции СУММ — в итоге должно получиться так:
- чтобы Excel воспринял нашу формулу как формулу массива жмем не Enter, как обычно, а Ctrl + Shift + Enter
Вуаля!
Т.е. Excel произвел попарное умножение элементов массивов B2:B5 и C2:C5 и образовал новый массив стоимостей (в памяти компьютера), а затем сложил все элементы этого нового массива.
Обратите внимание на фигурные скобки, появившиеся в формуле — отличительный признак формулы массива. Вводить их вручную с клавиатуры бесполезно — они автоматически появляются при нажатии Ctrl + Shift + Enter.
Пример 2. Разрешите Вас… транспонировать?
При работе с таблицами часто возникает необходимость поменять местами строки и столбцы, т.е. развернуть таблицу на бок, чтобы данные, которые раньше шли по строке, теперь располагались в столбцах и наоборот. В математике такая операция называется транспонированием. При помощи формулы массива и функции ТРАНСП (TRANSPOSE) это делается на раз.
Допустим, имеем двумерный массив ячеек, который хотим транспонировать.
- Выделяем диапазон ячеек для размещения транспонированной таблицы. Поскольку исходный массив ячеек был 8 строк на 2 столбца, то надо выделить диапазон пустых ячеек размером 2 строки на 8 столбцов.
- вводим функцию транспонирования =ТРАНСП(
- в качестве аргумента функции выделяем наш массив ячеек A1:B8
жмем Ctrl + Shift + Enter и получаем «перевернутый массив» в качестве результата:
Редактирование формулы массива
Если формула массива расположена не в одной ячейке (как в Примере 1), а в нескольких ячейках (как в Примере 2), то Excel не позволит редактировать или удалить одну отдельно взятую формулу (например в ячейке D10) и выдаст предупреждающее сообщение Невозможно изменить часть массива.
Для редактирования формулы массива необходимо выделить весь диапазон (A10:H11 в нашем случае) и изменить формулу в строке формул (или нажав F2). Затем необходимо повторить ввод измененной формулы массива, нажав сочетание клавиш Ctrl + Shift + Enter.
Excel также не позволит свободно перемещать ячейки, входящие в формулу массива или добавлять новые строки-столбцы-ячейки в диапазон формулы массива (т.е. в диапазон A10:H11 в нашем случае)
Пример 3. Таблица умножения
Вспомните детство, школу, свою тетрадку по математике… На обороте тетради на обложке было что? Таблица умножения вот такого вида:
При помощи формул массива она вся делается в одно движение:
- выделяем диапазон B2:K11
- вводим формулу =A2:A11*B1:K1
- жмем Ctrl + Shift + Enter, чтобы Excel воспринял ее как формулу массива
и получаем результат:
Пример 4. Выборочное суммирование
Посмотрите как при помощи одной формулы массива красиво и легко выбираются данные по определенному товару и заказчику:
В данном случае формула массива синхронно пробегает по всем элементам диапазонов C3:C21 и B3:B21, проверяя, совпадают ли они с заданными значениями из ячеек G4 и G5. Если совпадения нет, то результат равенства ноль, если совпадение есть, то единица. Таким образом суммы всех сделок, где заказчик не ANTON и товар не Boston Crab Meat умножаются на ноль и суммируются только нужные заказы.
Ссылки по теме
- Формула массива для извлечения непустых ячеек из диапазона
- Формула массива для извлечения уникальных ячеек из диапазона
- Формула массива для извлечения данных из списка (многоразовый ВПР)
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше
Функция СУММПРОИВ ВОЗВРАЩАЕТ сумму продуктов соответствующих диапазонов или массивов. По умолчанию операция умножения, но возможна с добавлением, вычитанием и делением.
В этом примере мы используем СУММПРОИВ для возврата общего объема продаж для данного элемента и его размера:
SumPRODUCT соответствует всем экземплярам элемента Y/Size M и суммирует их, поэтому в данном примере «21 плюс 41» равен 62.
Синтаксис
Чтобы использовать операцию по умолчанию (умножение):
=СУММПРОИВ(массив1;[массив2];[массив3];…)
Аргументы функции СУММПРОИЗВ описаны ниже.
Аргумент |
Описание |
---|---|
массив1 Обязательно |
Первый массив, компоненты которого нужно перемножить, а затем сложить результаты. |
[массив2], [массив3],… Необязательно |
От 2 до 255 массивов, компоненты которых нужно перемножить, а затем сложить результаты. |
Выполнение других арифметических операций
Используйте функцию СУММПРОИВ, как обычно, но вместо запятых, разделяющих аргументы массива, используйте нужные арифметические операторы (*, /, +, -). После выполнения всех операций результаты суммются обычным образом.
Примечание: Если вы используете арифметические операторы, заключите аргументы массива в скобки и используйте скобки для группировки аргументов массива для управления порядком арифметических операций.
Примечания
-
Аргументы, которые являются массивами, должны иметь одинаковые размерности. В противном случае функция СУММПРОИЗВ возвращает значение ошибки #ЗНАЧ!. Например, =СУММПРОИВ(C2:C10;D2:D5) возвращает ошибку, так как диапазоны не одного размера.
-
В функции СУММПРОИВТ ненумерические записи массива обрабатывают их так, как если бы они были нулями.
-
Для лучшей производительности не следует использовать суммпроив с полными ссылками на столбцы. Рассмотрим функцию =СУММПРОИВ(A:A;B:B), чтобы умножить 1 048 576 ячеек в столбце A на 1 048 576 ячеек в столбце B перед их добавлением.
Пример 1
Чтобы создать формулу на примере выше, введите =СУММПРОИВ(C2:C5;D2:D5) и нажмитеввод . Каждая ячейка в столбце C умножается на соответствующую ячейку в той же строке столбца D, и результаты сбавляются. Общая сумма продуктов составляет 78,97 долларов США.
Чтобы ввести более длинную формулу, которая дает такой же результат, введите =C2*D2+C3*D3+C4*D4+C5*D5 и нажмите ввод . После нажатия ввод результат будет таким же: 78,97 долларов США. Ячейка C2 умножается на D2, а ее результат добавляется к результату ячейки C3, умноженной на ячейку D3 и так далее.
Пример 2
В следующем примере sumPRODUCT возвращает суммарные чистую сумму продаж по агенту продаж, у которых есть как общие продажи, так и расходы по агенту. В этом случае мы используем таблицу Excel, в которой используются структурированные ссылки вместо стандартных Excel диапазонов. Здесь вы увидите, что диапазоны «Продажи», «Расходы» и «Агент» имеют ссылку по имени.
Формула: =СУММПРОИМ(((Таблица1[Продажи])+(Таблица1[Расходы]))*(Таблица1[Агент]=B8)) и возвращает сумму всех продаж и расходов агента, указанных в ячейке B8.
Пример 3
В этом примере мы хотим получить общую сумму по конкретному товару, проданного в конкретном регионе. В данном случае, сколько вишней было продается в восточном регионе?
Вот формула: =СУММПРОИВ((B2:B9=B12)*(C2:C9=C12)*D2:D9). Сначала оно умножает количество вхождений восточного на количество совпадающих вишней. Наконец, она суммирует значения соответствующих строк в столбце Продажи. Чтобы узнать, Excel вычисляет формулу, выйдите из ячейки формулы, а затем перейдите в > Вычислить формулу >.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Выполнение условных вычислений в диапазонах ячеек
Сумм на основе нескольких критериев с помощью СУММЕ ЕСЛИМЕСЯ
Подсчет на основе нескольких критериев с помощью функции СЧЁТЕФС
Среднее значение на основе нескольких критериев с помощью функции ССВЕIFS
Нужна дополнительная помощь?
Содержание
- Операции с массивами
- Создание формулы
- Изменение содержимого массива
- Функции массивов
- Оператор СУММ
- Оператор ТРАНСП
- Оператор МОБР
- Вопросы и ответы
Во время работы с таблицами 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
Как видим, операции с диапазонами помогают сэкономить время при вычислениях, а также свободное пространство листа, ведь не нужно дополнительно суммировать данные, которые объединены в диапазон, для последующей работы с ними. Все это выполняется «на лету». А для преобразования таблиц и матриц только функции массивов и подходят, так как обычные формулы не в силах справиться с подобными задачами. Но в то же время нужно учесть, что к подобным выражениям применяются дополнительные правила ввода и редактирования.
Массив функций 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» (никогда не забывайте эту комбинацию клавиш). Это самое главное, что нужно запомнить при обработке больших объемов информации. Правильно введенная функция выполняет сложнейшие задачи.
Skip to content
В статье объясняются основные и расширенные способы использования функции СУММПРОИЗВ в Excel. Вы найдете ряд примеров формул для сравнения массивов, условного суммирования и подсчета ячеек по нескольким условиям, расчета средневзвешенного значения и многое другое.
Когда вы впервые слышите название СУММПРОИЗВ, оно может звучать как какая-то бесполезная формула, выполняющая обычную операцию суммы произведений. Но это определение не показывает даже крошечной части того, на что способна функция Excel СУММПРОИЗВ (на английском – SUMPRODUCT).
На самом деле, СУММПРОИЗВ — это удивительно универсальная функция со множеством применений. Благодаря своей уникальной способности разумно и элегантно обрабатывать массивы, Она чрезвычайно полезна, если не незаменима, когда речь идет о сравнении данных в двух или более диапазонах и подсчёте данных с несколькими условиями. Следующие примеры раскроют всю мощь этой функции.
- Функция СУММПРОИЗВ в Excel — синтаксис и использование
- Логика работы СУММПРОИЗВ в Excel
- Как работает СУММПРОИЗВ с несколькими условиями
- Как работает формула СУММПРОИЗВ с одним условием
- Как пересчитать, суммировать или найти среднее по нескольким условиям
- 1. Формула с логикой И
- 2. Формула с логикой ИЛИ
- 3. Формула с логикой И и ИЛИ
- Формула СУММПРОИЗВ для средневзвешенного значения
- СУММПРОИЗВ как альтернатива формулам массива
- Excel СУММПРОИЗВ — примеры расширенных формул
Функция СУММПРОИЗВ в Excel — синтаксис и использование
Технически функция СУММПРОИЗВ в Excel перемножает числа в указанных диапазонах и возвращает сумму этих произведений.
Синтаксис функции СУММПРОИЗВ прост и понятен:
СУММПРОИЗВ(массив1; [массив2]; [массив3]; …)
Где массив1, массив2 и т. д. — это непрерывные диапазоны ячеек или массивов чисел, элементы которых вы хотите перемножить, а затем сложить.
Минимальное количество массивов равно 1. В этом случае формула СУММПРОИЗВ просто складывает все элементы и возвращает их сумму.
Максимальное количество массивов — 255 в Excel 365-2007 и 30 в более ранних версиях Excel.
Хотя СУММПРОИЗВ работает с массивами, она не требует использования формулы массива Ctrl + Shift + Enter
. Вы вводите формулу обычным способом, нажимая клавишу Enter
.
Примечания:
- Все массивы в формуле СУММПРОИЗВ должны иметь одинаковое количество строк и столбцов, иначе вы получите ошибку #ЗНАЧ!.
- Если какой-либо аргумент массива содержит нечисловые значения, они будут рассматриваться как нули.
- Если массив является логическим тестом, он дает значения ИСТИНА и ЛОЖЬ. В большинстве случаев вам нужно преобразовать их в 1 и 0 с помощью двойного отрицания (—).
- СУММПРОИЗВ не поддерживает подстановочные знаки * и ?.
Логика работы СУММПРОИЗВ в Excel
Чтобы получить общее представление о том, как работает функция СУММПРОИЗВ в Excel, рассмотрим следующий пример.
Предположим, у вас есть количество товаров в ячейках A2:A4, их цены в ячейках B2:B4, и вы хотите узнать их общую стоимость. Если бы вы делали школьный тест по математике, вы бы умножали количество на цену каждого предмета, а затем складывали промежуточные итоги. В Microsoft Excel вы можете получить сумму произведений с помощью одной формулы:
=СУММПРОИЗВ(B2:B5;C2:C5)
Следующий скриншот показывает ее в действии:
Вот что происходит «под капотом» с точки зрения математики:
- Формула берет 1-е число из 1-го массива (цену) и умножает его на 1-е число из 2-го массива (количество), затем берет 2-е число из 1-го массива и умножает его на 2 е число из 2-го массива, и так далее.
- Когда все элементы перемножаются, формула суммирует произведения и возвращает итоговую сумму.
Другими словами, наша формула СУММПРОИЗВ выполняет следующие математические операции:
=С2*B2 + С3*B3 + С4*B4 + С5*B5
Как использовать СУММПРОИЗВ в Excel с условиями – примеры формул
Только подумайте, сколько времени вы могли бы сэкономить, если бы ваша таблица содержала не 4 строки данных, а сотни или тысячи строк!
Перемножение соответствующих значений двух или более диапазонов, а затем нахождение суммы этих произведений — это самое простое и наиболее очевидное использование СУММПРОИЗВ в Excel, хотя далеко не единственное. Главное достоинство этой функции заключается в том, что она может делать гораздо больше, чем ее обычные заявленные возможности.
Далее в этом руководстве вы найдете несколько примеров формул, демонстрирующих более продвинутые и интересные способы использования, так что, пожалуйста, продолжайте читать.
Сумма произведений с несколькими условиями
Обычно в Microsoft Excel есть несколько способов выполнить одну и ту же задачу. Но когда дело доходит до сравнения двух или более массивов, особенно по нескольким условиям, СУММПРОИЗВ является наиболее эффективным, если не единственным решением. Ну, либо СУММПРОИЗВ, либо формула массива.
Предположим, что у вас есть список товаров в столбце A, запланированные данные о продажах в столбце B и фактические продажи в столбце C. Ваша цель — выяснить, сколько товаров из всего ассортимента продано меньше, чем планировалось. Для этого можно использовать один из следующих вариантов формулы СУММПРОИЗВ:
=СУММПРОИЗВ(—(C2:C10<B2:B10))
или
=СУММПРОИЗВ((C2:C10<B2:B10)*1)
Где C2:C10 — реальные продажи, а B2:B10 — запланированные продажи.
Но что, если у вас несколько условий? Допустим, вы хотите посчитать, сколько раз яблоки продавались хуже, чем планировалось. Решение состоит в том, чтобы добавить еще один критерий в формулу:
=СУММПРОИЗВ((C2:C10<B2:B10)*(A2:A10=»яблоки»))
Или вы можете использовать следующий синтаксис:
=СУММПРОИЗВ(—(C2:C10<B2:B10);—(A2:A10=»яблоки»))
А теперь давайте уделим минутку и разберёмся, что на самом деле делают приведенные выше формулы. Я считаю, что это достойное вложение времени, потому что многие другие формулы СУММПРОИЗВ работают с той же логикой.
Как работает формула СУММПРОИЗВ с одним условием
Для начала давайте разберем более простой случай. Нужно сравнить числа в двух столбцах построчно и сообщить, сколько раз числа колонки C меньше, чем B (то есть, план продаж не выполнен):
=СУММПРОИЗВ(—(C2:C10<B2:B10))
Если вы выделите часть (C2:C10<B2:B10) в строке формул и нажмете F9, чтобы просмотреть вычисленные значения, вы увидите следующую картину:
=СУММПРОИЗВ(—({ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ}))
Здесь мы имеем массив логических значений ИСТИНА и ЛОЖЬ, где ИСТИНА означает, что указанное условие выполнено (т. е. значение в столбце С меньше значения в колонке В в той же строке), а ЛОЖЬ указывает, что условие не выполнено.
Двойное отрицание (—) преобразует логические значения ИСТИНА и ЛОЖЬ в единицы и нули: {0:1:0:0:1:0:1:0:0}.
Другой способ преобразовать логические значения в числа — умножить массив на 1:
=СУММПРОИЗВ((C2:C10<B2:B10)*1)
В любом случае, поскольку в данном случае в формуле СУММПРОИЗВ использован только один массив, она просто складывает единицы в результирующем массиве, и мы получаем желаемое количество. Несложно, не так ли?
Как работает формула СУММПРОИЗВ с несколькими условиями
Когда формула СУММПРОИЗВ Excel содержит два или более массивов, она перемножает соответствующие элементы всех массивов, а затем находит сумму этих произведений.
Как вы помните, мы использовали следующие формулы, чтобы узнать, во сколько раз количество реальных продаж (столбец C) было меньше запланированных продаж (столбец B) яблок (столбец A):
=СУММПРОИЗВ((C2:C10<B2:B10)*(A2:A10=»яблоки»))
или:
=СУММПРОИЗВ(—(C2:C10<B2:B10);—(A2:A10=»яблоки»))
Единственное техническое различие между этими формулами заключается в способе преобразования ИСТИНА и ЛОЖЬ в 1 и 0 с помощью двойного отрицания или операции умножения. В результате получаем два массива единиц и нулей:
=СУММПРОИЗВ({0:1:0:0:1:0:1:0:0};{1:1:0:0:0:0:0:0:0})
Операция умножения, выполняемая СУММПРОИЗВ, объединяет эти числа в один массив. А поскольку умножение на ноль всегда дает 0, а 1 появляется только при выполнении обоих условий, то, следовательно, учитываются только строки, в которых выполнены оба условия:
Как пересчитать, суммировать или найти среднее по нескольким условиям
В Excel 2003 и более ранних версиях, в которых ещё не было функций ЕСЛИ с условиями, одним из наиболее распространенных применений функции СУММПРОИЗВ было условное суммирование или подсчет ячеек с несколькими критериями. Начиная с Excel 2007, Microsoft представила серию функций, специально разработанных для таких задач, — СУММЕСЛИМН, СЧЁТЕСЛИМН и СРЗНАЧЕСЛИ.
Но даже в современных версиях Excel формула СУММПРОИЗВ может быть достойной альтернативой, например, для условного суммирования и подсчета ячеек с логикой ИЛИ. Ниже вы найдете несколько примеров формул, демонстрирующих эту способность в действии.
Формула СУММПРОИЗВ с логикой И
Предположим, у вас есть следующий набор данных, где в столбце A перечислены регионы, в столбце B — товары, а в столбце C — данные о продажах:
Вам нужно получить количество, сумму и среднее значение продаж яблок в северном регионе.
В последних версиях Excel 2016, 2013, 2010 и 2007 задачу можно легко выполнить с помощью формул СУММЕСЛИМН, СЧЁТЕСЛИМН и СРЗНАЧЕСЛИ. Если вы не ищете легких путей или все еще используете Excel 2003 или более раннюю версию, вы можете получить желаемый результат с помощью СУММПРОИЗВ.
Чтобы сделать ваши формулы СУММПРОИЗВ более гибкими, мы указываем нужный регион и товар в отдельных ячейках, а затем ссылаемся на эти ячейки в своей формуле, как показано на скриншоте ниже:
- Чтобы подсчитать количество продаж яблок для Севера :
=СУММПРОИЗВ(—(A3:A13=F2); —(B3:B13=F3))
- Суммируем продажияблок для Севера:
=СУММПРОИЗВ(—(A3:A13=F2); —(B3:B13=F3); C3:C13)
- Чтобы найти средний размер продажи яблок на Севере:
Чтобы вычислить среднее значение, мы просто делим сумму на количество следующим образом:
=СУММПРОИЗВ(—(A3:A13=F2); —(B3:B13=F3); C3:C13)/СУММПРОИЗВ(—(A3:A13=F2); —(B3:B13=F3))
Формула СУММПРОИЗВ с логикой ИЛИ
Напомним, что логика ИЛИ означает, что выполняется хотя бы одно из нескольких условий. Чтобы суммировать или подсчитывать ячейки с помощью логики ИЛИ, используйте знак плюс (+) между массивами.
В формулах СУММПРОИЗВ Excel, а также в формулах массива символ плюс действует как оператор ИЛИ, который указывает Excel вернуть ИСТИНА, если ЛЮБОЕ из условий в данном выражении оценивается как ИСТИНА.
На следующем скриншоте показана такая формула в действии:
Чтобы подсчитать количество всех продаж апельсинов и лимонов независимо от региона, использована следующая формула:
=СУММПРОИЗВ((B3:B13=F2)+(B3:B13=H2))
Она означает следующее: подсчитывать ячейки, если B3:B13=»апельсины» ИЛИ B3:B13=»лимоны».
Чтобы найти общие продажи апельсинов и лимонов , добавьте еще один аргумент, содержащий диапазон продаж :
=СУММПРОИЗВ((B3:B13=F2)+(B3:B13=H2); C3:C13)
Формула СУММПРОИЗВ с логикой И и ИЛИ
Во многих ситуациях вам может понадобиться условно подсчитать или суммировать ячейки с помощью логики И и ИЛИ одновременно. Даже в последних версиях Excel серия функций ЕСЛИ на это не способна.
Одним из возможных решений является объединение двух или более функций СУММЕСЛИМН+СУММЕСЛИМН или СЧЁТЕСЛИМН+СЧЁТЕСЛИМН .
Другой способ — использовать функцию СУММПРОИЗВ Excel, где:
- Знак умножения (*) используется как оператор И.
- Плюс (+) используется как оператор ИЛИ.
Для лучшего понимания, рассмотрим следующие примеры.
Чтобы сделать формулы немного более компактными, вы можете записать переменные в отдельные ячейки — «Регион» в F1 и «Товары» в F2 и H2 — и ссылаться на них в своей формуле:
Сосчитаем, сколько раз яблоки и лимоны были проданы в Северном регионе. Для этого составим формулу со следующей логикой:
=СУММПРОИЗВ((A3:A13=F2)*((B3:B13=F3)+(B3:B13=H3)))
Чтобы суммировать продажи яблок и лимонов в Северном регионе, возьмите приведенную выше формулу и добавьте массив Продажи с логикой «И»:
=СУММПРОИЗВ((A3:A13=F2)*((B3:B13=F3)+(B3:B13=H3))*C3:C13)
Формула СУММПРОИЗВ для средневзвешенного значения
Еще одним распространенным использованием СУММПРОИЗВ в Excel является вычисление средневзвешенного значения, где каждому числу присваивается определенный вес.
Общая формула СУММПРОИЗВ для средневзвешенного значения выглядит следующим образом:
СУММПРОИЗВ( значения ; веса )/СУММ( веса )
Если предположить, что значения находятся в ячейках B2:B7, а веса — в ячейке C2:C7, формула средневзвешенного СУММПРОИЗВ будет выглядеть следующим образом:
=СУММПРОИЗВ(B2:B7;C2:C7)/СУММ(C2:C7)
Думаю, на этом этапе у вас не возникнет трудностей с пониманием логики формулы. Находим сумму произведений процента выполнения на коэффициент важности и делим на сумму коэффициентов важности.
СУММПРОИЗВ как альтернатива формулам массива
Даже если вы читаете эту статью в ознакомительных целях и детали, скорее всего, потускнеют в вашей памяти, помните только один ключевой момент — функция СУММПРОИЗВ в Excel работает с массивами.
Какие преимущества это дает вам? По сути, вы сможете легко управлять своими формулами, не нажимая Ctrl + Shift + Enter
каждый раз, когда вы вводите новую или редактируете существующую формулу массива.
В качестве примера мы можем взять простую формулу массива, которая подсчитывает все символы в заданном диапазоне ячеек. Более подробно этот пример рассмотрен в статье Как посчитать количество знаков в Excel.
=СУММПРОИЗВ(ДЛСТР( диапазон ))
или
=СУММПРОИЗВ(ДЛСТР(A2:A5))
Функция ДЛСТР в результате обработки диапазона ячеек возвращает массив значений – число символов в каждой из ячеек. Далее СУММПРОИЗВ складывает эти элементы массива и возвращает общее количество символов.
Excel СУММПРОИЗВ — примеры расширенных формул
Теперь, когда вы знаете синтаксис и логику функции СУММПРОИЗВ в Excel, вы можете изучить более сложные и более мощные формулы, в которых СУММПРОИЗВ используется совместно с другими функциями Excel.
Вот как мы это уже делали в более ранних публикациях на нашем сайте:
- СУММПРОИЗВ для ВПР по нескольким критериям — как выполнять поиск по нескольким критериям и возвращать совпадающие числа.
- «Левый» ВПР для числовых значений – извлекаем из столбца слева от столбца поиска числовые значения и суммируем их.
- Как подсчитать символы в Excel — формулы для подсчета всего или только определенных символов в диапазоне.
- СУММПРОИЗВ для подсчета слов в Excel — формулы для получения общего количества слов в определенном диапазоне или подсчета только определенных слов.
- Как подсчитать различные значения — узнайте, сколько разных значений появляется в диапазоне (уникальных плюс первые повторяющиеся вхождения).
- Подсчет дубликатов и уникальных значений — формула СУММПРОИЗВ / СЧЁТЕСЛИ для подсчета дубликатов и уникальных значений в столбце или между двумя столбцами.
- Извлечение только чисел из буквенно-цифровых строк — СУММПРОИЗВ в сочетании с 7 другими функциями извлекает все числа из строки число-текст-число.
Функция
СУММПРОИЗВ()
, английская версия SUMPRODUCT(),
не так проста, как кажется с первого взгляда: помимо собственно нахождения суммы произведений, эта функция может использоваться для подсчета и суммирования значений на основе критериев, а также, в некоторых случаях, избавить от необходимости применений формул массива.
Существует несколько вариантов применения функции
СУММПРОИЗВ()
:
- нахождение суммы произведений элементов списка (массива);
- суммирование и подсчет значений, удовлетворяющих определенным критериям;
-
замена
формул массива
(в некоторых случаях).
Нахождение суммы произведений элементов массивов
В этом разделе показан синтаксис функции
СУММПРОИЗВ()
и раскрыт ее потенциал для других применений.
Пусть имеется 2 диапазона чисел
A3:A6
и
B3:B6
, содержащие соответственно 2
массива чисел
: {4:8:6:1} и {7:6:7:5}. Записав формулу
=СУММПРОИЗВ(A3:A6;B3:B6)
, получим 123. Результат получен поэлементным перемножением всех элементов двух массивов, а затем сложением полученных произведений. То есть были выполнены следующие арифметические действия: 4*7 + 8*6 + 6*7 + 1*5= 123
Таким образом, можно найти сумму произведений 3-х, 4-х и т.д. массивов.
Аргументы, которые являются массивами, должны иметь одинаковые размерности (в нашем случае это массивы по 4 элемента). В противном случае функция
СУММПРОИЗВ()
возвращает значение ошибки #ЗНАЧ!.
В формуле
=СУММПРОИЗВ(A3:A6;B3:B6)
функция
СУММПРОИЗВ()
трактует нечисловые элементы массивов как нулевые. Однако, как показано ниже, функцию можно использовать для подсчета текстовых значений.
Что произойдет если указать только 1 массив, т.е.
=СУММПРОИЗВ(A3:A6)
? Тогда функция
СУММПРОИЗВ()
вернет сумму элементов, т.е. будет эквивалентна функции
СУММ()
:
=СУММ(A3:A6)
.
Синтаксис функции
СУММПРОИЗВ()
позволяет не просто указывать в качестве аргумента определенный диапазон, но и осуществлять арифметические действия перед операцией суммирования. Например, записав:
=СУММПРОИЗВ(A3:A6*2)
, получим сумму произведений =38 (каждый элемент массива из
A3:A6
был умножен на 2, затем все произведения просуммированы);
=СУММПРОИЗВ(A3:A6*B3:B6)
, получим результат суммы произведений – 123 (все элементы массивов были попарно перемножены, а затем сложены, т.е. A3*B3+ A4*B4+ A5*B5+ A6*B6), т.е. эта запись эквивалента формула
=СУММПРОИЗВ(A3:A6;B3:B6)
;
=СУММПРОИЗВ(A3:A6+B3:B6)
, получим сумму элементов из двух диапазонов;
=СУММПРОИЗВ(A3:A6/B3:B6
), получим сумму попарных отношений всех элементов, т.е. 4/7 + 8/6 + 6/7 + 1/5= 2,9619
Аналогичные вычисления можно выполнить и с функцией
СУММ()
, только для этого нужно ее ввести как
формулу массива
, т.е. после ввода функции в ячейку вместо
ENTER
нажать
CTRL+SHIFT+ENTER
:
=СУММ(A3:A6/B3:B6)
Прелесть функции
СУММПРОИЗВ()
в том, что после ввода функции в ячейку можно просто нажать
ENTER
, что снимает некий психологический барьер перед использованием
формул массива
.
Оказывается, что в качестве аргумента этой функции можно указать не только произведение массивов (
A3:A6*B3:B6
), но и использовать другие функции и даже применить к массивам операции сравнения, т.е. использовать ее для сложения чисел, удовлетворяющих определенным условиям.
Суммирование и подсчет значений удовлетворяющих определенным критериям
Попробуем подсчитать число значений больших 2 в диапазоне
A3:A6
, содержащий значения 4, 8, 6, 1.
Если мы запишем формулу
=СУММПРОИЗВ(A3:A6>2)
, то получим результат 0. Выделив в
Строке формул
A3:A6>2
и нажав клавишу
F9
, получим массив {ИСТИНА: ИСТИНА: ИСТИНА: ЛОЖЬ}, который говорит, что мы движемся в правильном направлении: в диапазоне
A3:A6
больше 2 только первые 3 значения. Хотя значению ИСТИНА соответствует 1, а ЛОЖЬ – 0, мы не получим 3, т.к. для перевода значений ИСТИНА/ЛОЖЬ в числовую форму требуется применить к ним арифметическую операцию. Для этого можно, например, применить операцию двойного отрицания (—), что позволит привести массив в числовую форму {1:1:1:0}.
Итак, задача подсчета значений больше 2 решается следующим образом:
=СУММПРОИЗВ(—(A3:A6>2))
Вместо двойного отрицания можно использовать другие формулы:
=СУММПРОИЗВ(1*(A3:A6>2))
или
=СУММПРОИЗВ(0+(A3:A6>2))
или даже так
=СУММПРОИЗВ((A3:A6>2)^1)
.
Запись >2 является критерием, причем можно указать любые операции сравнения (<; <=; >=; =).
Критерии можно указывать в форме ссылки:
=СУММПРОИЗВ(—(A3:A6>G8))
– ячейка
G
8
должна содержать число 2.
Критерии можно применять и к текстовым значениям, например,
=СУММПРОИЗВ(—(B3:B6=»яблоки»))
– вернет количество ячеек, содержащие слово
яблоки
(подробнее, например, в статье
Подсчет значений с множественными критериями (Часть 1. Условие И))
.
Функцию
СУММПРОИЗВ()
можно использовать для отбора значений по нескольким критериям (с множественными условиями). Как известно, 2 критерия могут образовывать разные условия:
-
Условие
ИЛИ
. Например, подсчитать ячеек содержащих значение
яблоки
ИЛИ
груши
=СУММПРОИЗВ((B3:B6=»яблоки»)+
(B3:B6=»груши»)
)
; -
Условие
И
. Например, подсчитать количество значений больше 2 и меньше 5:
=СУММПРОИЗВ((A3:A6>2)*
(A3:A6<5)
)
-
Условие
И
. Например, найти сумму Чисел больше 2 и меньше 5:
=СУММПРОИЗВ((A3:A6>2)*
(A3:A6<5)*(
A3:A6
)
)
В
файле примера
приведены решения подобных задач.
СУММПРОИЗВ() – как формула массива
В ряде случаев (когда нужно подсчитать или сложить значения, удовлетворяющие определенным критериям) можно заменить использование
формул массива
функцией
СУММПРОИЗВ()
, например:
=СУММПРОИЗВ(—ЕПУСТО(D2:D23))
подсчетпустых ячеек
в диапазоне;
=СУММПРОИЗВ(НАИБОЛЬШИЙ(A:A;{1;2;3}))
сумма 3-х наибольших значений;
=СУММПРОИЗВ((A3:A6>СРЗНАЧ(A3:A6))*(A3:A6))
сумма значений, которые большесреднего
.
Совет
: Дополнительную информацию об этой функции можно
подчерпнуть здесь (английский язык).