Excel перемножение массивов с условием

Как не забивать гвозди микроскопом с функцией СУММПРОИЗВ

Стандартное использование

Базовый синтаксис нашей функции прост:

=СУММПРОИЗВ(Массив1; Массив2; … )

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

Базовый сценарий применения СУММПРОИЗВ

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

=B2*C2+B3*C3+B4*C4+B5*C5

Технически, перемножаемых массивов (диапазонов) может быть не два, а три или больше (до 255). Главное, чтобы они были одного размера. Удобно, но ничего особенно. Однако, использовать СУММПРОИЗВ только так — забивать гвозди микроскопом, ибо, на самом деле, она умеет гораздо больше.

Работа с массивами без Ctrl+Shift+Enter

Если вы хоть немного знакомы в Excel с формулами массива, то должны понимать их мощь и красоту. Иногда одна формула массива может заменить несколько столбцов дополнительных вычислений и ручного труда. Но у формул массива есть и минусы. Главные — это относительная сложность понимания, замедление пересчета книги и необходимость вводить эти формулы сочетанием Ctrl+Shift+Enter вместо обычного Enter. И вот как раз с последним может помочь наша функция СУММПРОИЗВ. Нюанс в том, что она умеет работать с массивами по определению, т.е. не требует обязательного нажатия Ctrl+Shift+Enter при вводе.

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

Подсчет количества выполненных условий

Допустим, нам нужно посчитать количество филиалов компании, где план выполнен (т.е. факт больше или равен плану). Это можно сделать одной формулой с СУММПРОИЗВ без дополнительных столбцов:

Подсчет количества условий

Умножение на 1, в данном случае, нужно, чтобы преобразовать результаты сравнения плана и факта — логическую ИСТИНУ и ЛОЖЬ в 1 и 0, соответственно.

Проверка нескольких условий

Если нужно проверять больше одного условия, то формулу из предыдущего примера нужно будет дополнить еще одним (или несколькими) множителями. И если нужно подсчитывать не количество, а сумму, то умножать можно не на 1, а на диапазон с суммируемыми данными:

СУММПРОИЗВ по нескольким условиям

Фактически, получается что-то весьма похожее на математическую функцию выборочного подсчета СУММЕСЛИМН (SUMIFS), которая также умеет проверять несколько условий (до 127) и суммировать по ним значения из заданного диапазона.

Логические связки И и ИЛИ (AND и OR)

Если нужно связывать условия не логическим «И», как в примере выше (Факт>=План) И (Регион=Восток), а логическим ИЛИ, то конструкция немного изменится — знак умножения заменяется на плюс:

СУММЕСЛИ с условиями ИЛИ

Подсчет по данным из закрытого(!) файла

Кроме всего вышеперечисленного, у СУММПРОИЗВ есть еще одно неочевидное и весьма полезное свойство — она умеет работать с данными из неоткрытых книг. Если, для сравнения, попробовать подсчитать в другом файле количество филиалов из региона Восток нашей книги и написать вот такое:

СУММПРОИЗВ из закрытой книги

…то вторая формула с классической функцией СЧЁТЕСЛИМН (COUNTIFS) будет работать только до тех пор, пока исходный файл открыт. Если его закрыть, то появляется ошибка #ЗНАЧ! Наша же функция СУММПРОИЗВ (SUMPRODUCT) спокойно считает по данным даже из неоткрытой книги!

Ссылки по теме

  • Что такое формулы массива и как они работают
  • Как производить выборочные вычисления по одному или нескольким критериям

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 другими функциями извлекает все числа из строки число-текст-число.

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

Принципы работы СУММПРОИЗВ с несколькими условиями в Excel

Синтаксис функции СУММПРОИЗВ — следующий:

Синтаксис схема

Первый массив является обязательным. Значения должны быть числовыми, текстовые значения формула посчитает как 0. Массивы 2,3 и так далее являются дополнительными необязательными аргументами и используются в зависимости от постановки задачи. Данная функция по ячейкам или по элементам перемножает несколько массивов и суммирует получившиеся произведения. Самый обычный и простой пример использования функции СУММПРОИЗВ – получить общую стоимость, перемножив цену и количество товаров или услуг. В столбце «В» у нас имеются цены, а в столбце «С» – количество товаров. Нам нужно узнать общую стоимость реализации товаров. В ячейке Е4 пишем формулу:

тоимость реализации товаров

СУММПРОИЗВ поочередно умножила соответствующие значения из двух массивов (450*3; 340*6 и так далее) и суммировала результаты. Функция СУММПРОИЗВ поддерживает работу с массивами, это означает, что можно использовать логику формул массива, используя СУММПРОИЗВ. Кстати, если помните, для ввода формул массива всегда обязательно следует использовать сочетание клавиш Ctrl+Shift+Enter. В нашем случае надобности в этом нет, поскольку СУММПРОИЗВ работает по логике формул массива по определению. В следующем примере у нас есть таблица, которая содержит информацию о компаниях, регионах их деятельности, плановых продажах и фактических продажах. Наша задача – узнать, сколько компаний выполнили план по реализации товаров или услуг. Эту задачу можно решить и иным способом, например, добавить столбец, в котором сосчитать процент выполнения плана, затем применить СЧЕТЕСЛИ или СЧЕТЕСЛИМН. И это хороший и правильный способ, Однако!!!, можно выполнить задачу проще и быстрее. В ячейке Е23 пишем формулу:

СУММПРОИЗВ

Таким образом, условие D13:D20>=C13:C20 будет по очереди применяться к паре значений по ряду, затем это сравнение будет возвращать логическое значение ложь или истину. Для того чтобы трансформировать ложь и истину в числовое значение, умножаем содержащееся внутри СУММПРОИЗВ условие на 1. Ложь*1=0, истина*1=1. Затем все полученные 1 суммируются:

условие на 1

В предыдущем примере мы использовали одно условие, но при необходимости можно добавлять дополнительные условия. Например, нам нужно найти сколько компаний выполнили план в Северной Европе. Для этого нам следует к имеющийся формуле добавить еще одно условие – диапазон В13:В20, ячейки которого содержат текст «Северная Европа»:

промежуточные итоги

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

итого по условию критерия

Суммирование промежуточных итогов в Excel по условию

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

Сумма промежуточных итогов

Теперь наша ИСТИНА будет умножаться на соответствующую величину продаж, а ЛОЖЬ при умножении будет возвращать ноль. Функции, работающие с условиями, сопровождаются логическими операторами И, ИЛИ, НЕ и так далее. Если посмотреть на нашу формулу, два заданных условия связаны между собой логическим оператором И, то есть, выполняется поиск компаний, в которых и выполнен план, и расположение – Северная Европа. Что, если нам нужно связать условия логическим оператором ИЛИ? Допустим, нам нужно просуммировать сумму компаний из регионов Северная и Центральная Европа. Тогда между двумя условиями нужно вместо умножения поставить знак «плюс»:

связать условия оператором ИЛИ

Выборка данных из диапазона по нескольким условиям в Excel

У нас есть таблица с данными о сотрудниках и их баллах, полученные за тестирование навыков. Нам нужно выбрать среди сотрудников тех, чьи результаты оказались лучше остальных. Первым делом нужно посчитать среднее значение. Можно сделать это через функцию СРЗНАЧ и это будет правильно:

СРЗНАЧ

Сейчас вроде как определился лидер, Джек, у которого наибольшее среднее значение. Однако, если взглянуть на общую картинку с баллами, увидим, что высокие баллы Джек набрал по тем категориям, которые не являются первоочередными для выполнения обязанностей. А Мария, которая находится на втором месте, обогнала Джека по тестам «Знание инструментов анализа продаж» и «Знание законодательных актов». То есть, важен вес определенного теста. Нам нужно не среднее значение, а средневзвешенное. В таких случаях используем СУММПРОИЗВ. У нас есть еще одна таблица, в которой имеется информация о весомости каждого теста. В ячейке В80 пишем формулу:

еще одна таблица

СУММПРОИЗВ умножает и суммирует столбец с полученными баллами и столбец с весом каждого теста. Затем делим результат на сумму значений столбца Н. Не забываем использовать абсолютные ссылки для корректного копирования. Копируем формулу до конца ряда:

умножает и суммирует столбец

Теперь заново внимательно смотрим результаты – у нас переопределялся лидер. В прошлом примере Джек занимал первое место, теперь у него самый низкий результат. Мария из второго места ушла на 3, а лидером оказался Питер.

Работа функции СУММПРОИЗВ с текстовыми значениями в Excel

Еще один простой, но работающий пример использования:

текстовые значения

В этом примере мы сосчитали количество ячеек, содержимое которых превышает 20 символов. Работает эта формула изнутри: ДЛСТР считает сколько всего символов содержит текст в ячейке (возвращаемый результат функции ДЛСТР можно посмотреть по столбцу Е). Затем элементы из массива сопоставляются с условием «больше 20» и приобретают значение ЛОЖЬ или ИСТИНА. После этого функция Ч трансформирует полученные логические результаты в числа 1 и 0. В конце СУММПРОИЗВ подсчитывает количество соответствующих ячеек:

количество по критерию условия

download file Скачать примеры СУММПРОИЗВ с несколькими условиями в Excel

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

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

Нужна дополнительная помощь?


Функция

СУММПРОИЗВ()

, английская версия 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))

    сумма значений, которые больше

    среднего

    .


Совет

: Дополнительную информацию об этой функции можно

подчерпнуть здесь (английский язык).

Перемножение ячеек с выбранными условиями

Havfrue

Дата: Среда, 01.10.2014, 22:15 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 63


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Добрый вечер!
Может быть глупый вопрос, но я мало знакома с функцией СУММПРОИЗВ. В Файле я отобрала сумму (она в ячейке L2) по двум критериям (в столбце J) в одном диапазоне. А теперь я хочу перемножить суммы по каждому из критериев и значения из ячеек в столбце К.
Как то не очень понятно написала, но может приложенный файл понятнее.

Спасибо заранее!

 

Ответить

YouGreed

Дата: Среда, 01.10.2014, 22:49 |
Сообщение № 2

Группа: Проверенные

Ранг: Ветеран

Сообщений: 589


Репутация:

123

±

Замечаний:
0% ±


Excel 2010

Havfrue, Так или не? А то не понятно)

К сообщению приложен файл:

_______.xlsx
(24.0 Kb)

 

Ответить

Pelena

Дата: Среда, 01.10.2014, 22:57 |
Сообщение № 3

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Если нужна общая сумма с учётом коэффициентов

Код

=СУММПРОИЗВ(СУММЕСЛИ(A:A;J2:J4;F:F);K2:K4)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

EvgenyD

Дата: Среда, 01.10.2014, 22:59 |
Сообщение № 4

Группа: Пользователи

Ранг: Участник

Сообщений: 74


Репутация:

19

±

Замечаний:
0% ±


Excel 2013

Если я правильно понял задачу, то зачем Вы суммируете сразу по двум критериям? Почему бы просто не сделать СУММЕСЛИ по критерию данной строки и умножить на значение столбца K в данной строке?

 

Ответить

Havfrue

Дата: Среда, 01.10.2014, 23:02 |
Сообщение № 5

Группа: Пользователи

Ранг: Участник

Сообщений: 63


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Не… Надо чтоб общая суммы с кодом 1502 умножились на значение 0.5, а суммы с кодами 1562 на 0.6 и в ячейке отразилась сумма полученных значений. Как то так.

 

Ответить

Havfrue

Дата: Среда, 01.10.2014, 23:05 |
Сообщение № 6

Группа: Пользователи

Ранг: Участник

Сообщений: 63


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Pelena, Спасибо! Именно так. Так просто.)

 

Ответить

Havfrue

Дата: Вторник, 07.10.2014, 15:18 |
Сообщение № 7

Группа: Пользователи

Ранг: Участник

Сообщений: 63


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

добрый день! кручу верчу, никак не получу. нужно найти значение на листе 1810 ом или 1810 к и в случае если значения совпадают — то перемножить соответсвующие столбцы на листах 1810 ом и 1810 к. во вложении на листе V в желтой ячейке, то что нужно получить. спасибо заранее.

 

Ответить

ShAM

Дата: Вторник, 07.10.2014, 15:35 |
Сообщение № 8

Группа: Друзья

Ранг: Старожил

Сообщений: 1347


Репутация:

249

±

Замечаний:
0% ±


Excel 2010

Код

=СУММПРОИЗВ(‘1810 om’!$B$8:$L$42*(‘1810 om’!$B$7:$L$7=A12)*’1810 K’!$B$8:$L$42*(‘1810 K’!$B$7:$L$7=A12))

Сообщение отредактировал ShAMВторник, 07.10.2014, 15:37

 

Ответить

Havfrue

Дата: Вторник, 07.10.2014, 15:46 |
Сообщение № 9

Группа: Пользователи

Ранг: Участник

Сообщений: 63


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

ShAM, Da, spasibo. Vse imenno tak!)

 

Ответить

Студворк — интернет-сервис помощи студентам

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

имеется два столбца:

А1:A23 — это сами значения, которые необходимо перемножить

и:

B1:B23 — критерий (год), условие по которому осуществляется выбор диапазона перемножения значений.

Сумму произведений считает и произведений значений всего массива, а необходимые нет…

Использовал формулы:

=ПРОИЗВЕД(1;ЕСЛИ(A1:A23>0;СЧЁТЕСЛИМН(B1:B23;»>=»&$ E$4;B1:B23;»<=»&$E$17);СМЕЩ(B1:B23;;-1)))

=ПРОИЗВЕД(1;ЕСЛИ(СУММПРОИЗВ((B1:B23>=E4)*(B1:B23<= E17))>0;A1:A23)).

макрос написал, все работает! Но нужна формула. Динамика.

Это глава из книги: Майкл Гирвин. Ctrl+Shift+Enter. Освоение формул массива в Excel.

Предыдущая глава                                Оглавление                                 Следующая глава

Функция СУММПРОИЗВ имеет так много удивительных применений в Microsoft Excel, что ей не зазорно посвятить целую главу. Прелесть этой функции в том, что она без применения Ctrl+Shift+Enter способна:

  • перемножить два и более массива и сложить результаты умножения;
  • сложить элементы одного массива.

Как уже неоднократно упоминалось ранее, если у вас есть выбор между двумя одинаково эффективными формулами, одна из которых требует нажатия Ctrl+Shift+Enter, а вторая – нет, следует выбрать вторую. Вот почему использование СУММПРОИЗВ зачастую более предпочтительно, чем СУММ.

Вспомним примеры использования СУММПРОИЗВ, рассмотренные в предыдущих главах:

Рис. 2.14 – сумма разностей двух столбцов =СУММПРОИЗВ(D3:D6-C3:C6)
Рис. 3.4 – сумма произведений столбца на константу =СУММПРОИЗВ(B2:B5*(1-B7))
Рис. 6.6 – общее число символов в колонке =СУММПРОИЗВ(ДЛСТР(A2:A6))
Рис. 6.11 – сумма затрат, выбранных из таблицы просмотра функцией СУММЕСЛИ (для неотсортированных исходных данных) =СУММПРОИЗВ(СУММЕСЛИ(Е4:Е6,B3:В7,F4:F6))
Рис. 6.12 – (подобно рис. 6.11), но для отсортированных данных =СУММПРОИЗВ(ПРОСМОТР(B3:B7,Е4:F6))
Рис. 7.18 – сумма n наибольших значений в диапазоне В2:В8, где n размещено в ячейке D3 =СУММПРОИЗВ(НАИБОЛЬШИЙ(B2:B8;СТРОКА(ДВССЫЛ("1:"&D3))))
Рис. 7.33 – сумма затрат из некоторых столбцов (заданных массивом констант), выбранных по определенному товару функцией ВПР =СУММПРОИЗВ(ВПР(A7;A2:H4;{2;4;5;7;8}))

То, что вы познакомились с таким большим количеством примеров использования СУММПРОИЗВ, еще до главы, специально посвященной этой функции, подчеркивает, насколько она полезна!

Рис. 10.1. Поэлементное умножение двух диапазонов

Рис. 10.1. Поэлементное умножение двух диапазонов одинаковых размеров с последующим суммированием результатов умножения

Скачать заметку в формате Word или pdf, примеры и ExternalData в формате Excel2013

Основные свойства функции СУММПРОИЗВ:

  1. СУММПРОИЗВ обрабатывает два массива или более; функция сначала попарно перемножает элементы массивов, а затем суммирует результаты умножения.
  2. Число аргументов функции от 1 до 255; аргументы называются массив1, массив2 и так далее; массивы должны иметь одинаковую размерность, например, 1*3 и 1*3, 4*1 и 4*1, 2*4 и 2*4.
  3. Функция интерпретирует нечисловые значения как нулевые.
  4. Аргументы функции поддерживают операции с массивами, а ввод функции не требует нажатия Ctrl+Shift+Enter.
  5. Если массивы имеют разную размерность и их нужно умножить, вы можете использовать оператор умножения внутри одного аргумента функции (ниже будет показано, как это сделать). Если массивы умножаются внутри одного аргумента, и хотя бы один из элементов массива не число, функция вернет ошибку #ЗНАЧ! Способность функции СУММПРОИЗВ интерпретировать нечисловые значения как нулевые распространяется только на ситуации, когда каждый массив помещен в отдельный аргумент. Обойти эту проблему можно с помощью функции МУМНОЖ, о чем будет рассказано в главе 18.
  6. Функция может обработать единственный массив, помещенный в аргумент массив1; в этом случае просто выполнится суммирование элементов массива.
  7. Если у вас есть массив логических величин и вы хотели бы использовать его в расчетах, вы должны предварительно преобразовать значения ИСТИНА и ЛОЖЬ в единицы и нули. Любые математические операции справятся с этой задачей, но я рекомендую использовать двойное отрицание, как самый быстрый метод вычисления.
  8. Если у вас Excel 2007 или более поздняя версия и вы подсчитываете ячейки или суммируете их содержимое с использованием нескольких критериев, используйте функции СУММЕСЛИМН и СЧЁТЕСЛИМН, потому что они работают быстрее.
  9. Функция СУММПРОИЗВ может использоваться в качестве замены СУММЕСЛИ, СЧЁТЕСЛИ, СУММЕСЛИМН и СЧЁТЕСЛИМН (подробнее см. ниже в этой главе).

Теперь давайте рассмотрим кучу примеров использования СУММПРОИЗВ.

Наиболее очевидное применение функции СУММПРОИЗВ – умножение двух или более массивов одинаковых размеров, с последующим их суммированием. Например, на рис. 10.1 показан ряд денежных знаков (банкнот и монет) и ряд их количеств. Цель – рассчитать размер банковского вклада. Действуя обычным образом, вы должны были бы создать формулу, которая умножает стоимость каждого денежного знака на их количество, а затем суммирует результаты; что-то типа: $100 * 22 + $50 * 0 + $20 * 50 + $10 * 22 + $5 * 25 + $1 * 38 + $0,50 * 0 + $0,25 * 40 + $0,10 * 50 + $0,05 * 0 + $0,01 * 50 = $3598,50. К счастью, функция СУММПРОИЗВ позволяет упростить эту формулу =СУММПРОИЗВ(B1:L1;B2:L2).

На рис. 10.2 показаны преимущества функции СУММПРОИЗВ над формулой массива на основе функции СУММ. СУММПРОИЗВ не требует нажатия Ctrl+Shift+Enter, и она справляется с ячейками с текстом, так как интерпретирует их как нулевые. Функция массива СУММА возвращает ошибку #ЗНАЧ!, потому что не может умножить текст на число. Рис. 10.3–10.5 показывают еще три примера умножения массивов одинаковых размеров с последующим суммированием.

Рис. 10.2. СУММПРОИЗВ не требует нажатия Ctrl+Shift+Enter

Рис. 10.2. СУММПРОИЗВ не требует нажатия Ctrl+Shift+Enter, и справляется с ячейками с текстом, так как интерпретирует их как нулевые

Рис. 10.3. Расчет взвешенной оценки с помощью СУММПРОИЗВ

Рис. 10.3. Расчет взвешенной оценки

Рис. 10.4. Расчет объема закупок на основе средневзвешенных данных

Рис. 10.4. Расчет объема закупок на основе средневзвешенных данных

Рис. 10.5. Функция СУММПРОИЗВ может обрабатывать до 255 диапазонов

Рис. 10.5. Функция СУММПРОИЗВ может обрабатывать до 255 диапазонов; в этом примере умножаются 4 столбца

Примечание: если формула ссылается только на две ячейки, например, =СУММПРОИЗВ(A10;B10), и хотя бы одна их них пуста, функция вернет ошибку; если обе ячейки содержат числа (пусть и нули), ошибки не будет.

Умножение трех диапазонов различного размера с последующим суммированием результатов. На рис. 10.6 приведен пример из финансовой области. Вы оцениваете ожидаемую доходность портфеля из двух акций. Расчет учитывает вероятность экономического состояния рынка (B4:B6), вес каждой акции (C1, D1), и доходности отдельных акций (C4:D6). Если вы займетесь вычислениями вручную, это будет непросто: 0,15 * 0,6 * 0 + 0,7 * 0,6 * 0,06 + 0,15 * 0,6 * 0,1 + 0,15 * 0,4 * -0,15 + 0,7 * 0,4 * 0,05 + 0,15 * 0,4 * 0,2 = 0,0512.

Рис. 10.6. Умножение поможет справиться с массивами разных размеров

Рис. 10.6. Умножение поможет справиться с массивами разных размеров

Вы можете обойти требование о том, что массивы в аргументах функции СУММПРОИЗВ должны иметь одинаковые размеры, путем умножения диапазонов в одном аргументе, как показано на рис. 10.6. Процесс вычисления показан на рис. 10.7. Вы помните, что аргумент массив1 функции СУММПРОИЗВ может обрабатывать массивы, поэтому нажатия Ctrl+Shift+Enter для ввода формулы не требуется. Обратите внимание, что перемножаемые массивы имеют не совсем произвольную размерность. Первый массив (В4:В6) – это как бы заголовок строк, второй массив (С1:D1) – заголовок столбцов, третий массив (С4:D6) – тело таблицы. Если бы вы попробовали формулу типа =СУММПРОИЗВ(B4:B6*C4:C5*D4:D6), вы получили бы ошибку #Н/Д! Формула попыталась бы сделать следующие вычисления: В4*С4*D4 + B5*C5*D5 + B6*Н/Д*D6, а поскольку третьего элемента во втором диапазоне нет, ничего бы не получилось …

Рис. 10.7. Процесс расчета в случае, если массивы имеют разный размер

Рис. 10.7. Процесс расчета в случае, если массивы имеют разный размер

Функцию СУММПРОИЗВ часто используют для суммирования результатов, возвращаемых каким-либо оператором массива, например, функцией ОКРУГЛ (рис. 10.8). Преимущество СУММПРОИЗВ над СУММ состоит в том, что первая не требует нажатия Ctrl+Shift+Enter. На рис. 10.8 показано, как можно получить сумму счета. Бухгалтерам знакома эта проблема: прежде чем суммировать подитоги по строкам, нужно сделать округление с точностью до копейки. Если такого округления не сделать, то сумма счета может не совпасть с суммой по отдельным строкам.

Рис. 10.8. Сумма счета

Рис. 10.8. Сумма счета равна сумме всех строк; в свою очередь сумма по строке получается округлением до копеек произведения цены на количество

Я пишу эту книгу в 2013 году. Начиная с 2007 г. в Excel появились функции СУММЕСЛИМН и СЧЁТЕСЛИМН, которые могут суммировать содержимое ячеек и считать количество ячеек с использованием нескольких критериев. Кроме того, уже давно в Excel есть функции БДСУММ и БСЧЁТ, которые также могут осуществлять вычисления с несколькими условиями. Эти четыре функции зачастую более эффективны, чем СУММПРОИЗВ. Так почему же вы должны изучать применение СУММПРОИЗВ для целей выборки с несколькими критериями? Вот некоторые из этих причин:

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

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

Рассмотрим исходные данные, включающие имена сотрудников, номера проектов и время, потраченное на участие в проекте (рис. 10.9–10.12). Цель – определить суммарное время, потраченное сотрудником Kip на Проект 2 (это И критерий, так как оба условия должны быть выполнены, чтобы включить время в суммирование). Как показано на рис. 10.9 первый набор формул использует СУММЕСЛИМН и СЧЁТЕСЛИМН. Поскольку большинство пользователей знакомились с Excel до 2007 года, они вполне могли пропустить появление новых функций в версии 2007, и продолжают по старинке применять СУММПРОИЗВ, БДСУММ и БСЧЁТ. В то же время, для подобных целей СУММЕСЛИМН и СЧЁТЕСЛИМН более эффективны.

Рис. 10.9. СУММЕСЛИМН и СЧЁТЕСЛИМН – лучший выбор

Рис. 10.9. В Excel 2007 (и более поздней версии) СУММЕСЛИМН и СЧЁТЕСЛИМН – лучший выбор

СУММЕСЛИМН и СЧЁТЕСЛИМН обладают следующими преимуществами:

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

На рис. 10.10 показаны примеры БДСУММ и БСЧЁТ. Если вы используете Excel 2003 или более раннюю версию, и имена полей присутствуют, как в наборе данных, так и в области критериев, и вам не нужно копировать формулы из одной ячейки в другую, используйте функции базы данных. Во-первых, они работают быстрее, чем СУММПРОИЗВ; во-вторых, их проще создать, особенно если у вас много условий.

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

Рис. 10.10. В Excel 2003 (и более ранней версии) используйте БДСУММ и БСЧЁТ

Рис. 10.10. В Excel 2003 (и более ранней версии) используйте БДСУММ и БСЧЁТ

На рис. 10.11 показан пример использования СУММПРОИЗВ. Если у вас Excel 2003 или более ранняя версия, и у вас нет имен полей в наборе данных и/или в области критериев, СУММПРОИЗВ сможет сделать работу там, где функции базы данных не справятся. (Вы узнаете, как была создана эта формула и почему вы используете двойное отрицание чуть позже.)

Рис. 10.11. Возможно также использовать и СУММПРОИЗВ

Рис. 10.11. Возможно также использовать и СУММПРОИЗВ

На рис. 10.12 показано еще одно преимущество СУММПРОИЗВ над функциями базы данных (в Excel 2003) – возможность копирования формул. В этом примере вы суммируете выборки на основе двух критериев и помещаете результат в таблицу, основанную на именах сотрудников и номерах проектов. Вы создали формулу в ячейку F3 и скопировали ее в диапазон F3:G5.

Рис. 10.12. СУММПРОИЗВ позволяет копировать формулы

Рис. 10.12. СУММПРОИЗВ позволяет копировать формулы

Чтобы понять, зачем нужно двойное вычитание (отрицание) в СУММПРОИЗВ при вычислении с несколькими критериями выборки, необходимо вспомнить, что:

  • СУММПРОИЗВ не может распознать логические значения ИСТИНА и ЛОЖЬ; все нечисловые данные СУММПРОИЗВ интерпретирует как нули.
  • Любые математические операции преобразует значение ИСТИНА в 1, а ЛОЖЬ – в 0.

Давайте посмотрим на рис. 10.13. Цель формулы в ячейке D2 – подсчет числа вхождений записи Kip в столбце А. Мы поместили оператор сравнения массива и числа (A2:A5=C2) в аргумент массив1 функции СУММПРОИЗВ. Если вы выделите этот оператор и нажмете F9, то увидите результирующий массив, включающий значения ИСТИНА и ЛОЖЬ (рис. 10.14). Вы еще не забыли, что для отмены расчета нужно нажать Ctrl+Z?

Рис. 10.13. Оператор массива спрашивает, равен ли какой-либо элемент Kip

Рис. 10.13. Оператор массива (A2:A5=C2) спрашивает: «равен ли какой-либо элемент Kip»?

Рис. 10.14. Оператор сравнения возвращает массив значений ИСТИНА и ЛОЖЬ

Рис. 10.14. Оператор сравнения возвращает массив значений ИСТИНА и ЛОЖЬ; СУММПРОИЗВ интерпретирует все эти значения, как нулевые

Если ввести формулу, вы получите ноль, потому что СУММПРОИЗВ воспринимает логические значения в виде нулей (рис. 10.15). Тем не менее, если вы сможете преобразовать значение ИСТИНА в 1, а ЛОЖЬ – в 0, СУММПРОИЗВ осуществит суммирование, и вернет число единиц.

Рис. 10.15. СУММПРОИЗВ интерпретирует нечисловые данные как нули

Рис. 10.15. СУММПРОИЗВ интерпретирует нечисловые данные как нули, поэтому сумма нулей дает ноль

Преобразовать логическое значение ИСТИНА в 1, а ЛОЖЬ – в 0 может любая математическая операция (рис. 10.16).

Рис. 10.16. Любые математические операции преобразуют логическое значение ИСТИНА в 1, а ЛОЖЬ – в 0

Рис. 10.16. Любые математические операции преобразуют логическое значение ИСТИНА в 1, а ЛОЖЬ – в 0

На рис. 10.17 показано, как использовать математические операции (или функцию Ч) в формуле массива СУММПРОИЗВ, чтобы подсчитать, сколько Kip, в столбце А. Чтобы увидеть процесс вычисления, например, по формуле [1], встаньте на ячейке D2, выделите целиком аргумент функции СУММПРОИЗВ и нажмите F9 (рис. 10.18). Наиболее часто используют двойное отрицание. Это связано, во-первых с тем, что оно работает чуть быстрее, а во-вторых, с тем, что простое отрицание занимает высокую позицию в списке очередности выполнения операторов в Excel (подробнее см. главу 1). Приоритет отрицания даже выше, чем возведение в степень.

Рис. 10.17. Шесть способов преобразования логических значений ИСТИНА и ЛОЖЬ в 1 и 0

Рис. 10.17. Шесть способов преобразования логических значений ИСТИНА и ЛОЖЬ в 1 и 0

Рис. 10.18

Рис. 10.18. Как СУММПРОИЗВ интерпретирует логические значения ИСТИНА и ЛОЖЬ с помощью двойного отрицания

Теперь, когда вы убедились в том, что двойное отрицание является эффективным средством для преобразования значений ИСТИНА в 1 и ЛОЖЬ – в 0, давайте вернемся к формуле СУММПРОИЗВ с использованием двух критериев выборки (см. рис. 10.11), и подробно рассмотрим ее работу (рис. 10.19).

Рис. 10.19. Пошаговая работа формулы =СУММПРОИЗВ

Рис. 10.19. Пошаговая работа формулы =СУММПРОИЗВ(--(A2:A7=E2);--(B2:B7=F2);C2:C7)

И критерии (логическое умножение) и СУММПРОИЗВ. Условные вычисления с помощью функции АГРЕГАТ (см. главу 4) и все примеры этой главы использовали И критерии: все условия должны быть соблюдены для того, чтобы включить пункт в подсчет количества или суммирование. Например, если у вас есть формула =СУММПРОИЗВ(--(A2:A7=E2);--(B2:B7=F2);C2:C7), будут суммироваться только те элементы диапазоне С2:С7, для которых и --(A2:A7=E2) и --(B2:B7=F2) вернут единицы. Когда СУММПРОИЗВ умножает два массива заполненные единицами и нулями на третий массив, заполненный числами, это называется логическим умножением.

Различия в синтаксисе операторов сравнения, используемых в функциях СУММЕСЛИМН, БДСУММ, СУММПРОИЗВ (рис. 10.23–10.26).

Рис. 10.23. СУММЕСЛИМН суммирует время звонков Sioux в период между 7 и 13 октября

Рис. 10.23. СУММЕСЛИМН суммирует время звонков Sioux в период между 7 и 13 октября; условия вписаны в ячейки А2 и А3

Рис. 10.24. Условия прописаны в самой формуле

Рис. 10.24. Аналогично, но условия прописаны в самой формуле (в ячейке А5); А2 и А3 содержат только данные; эта методика полезна, если данные из А2 и А3 используются в других местах

Рис. 10.25. БДСУММ требует, чтобы сравнительный оператор быть помещены в ячейку

Рис. 10.25. БДСУММ требует, чтобы операторы сравнения были помещены в ячейку, а также, чтобы заголовки в таблице и в области критериев совпадали; БДСУММ менее гибкая, чем СУММЕСЛИМН

Рис. 10.26. СУММПРОИЗВ требует, чтобы операторы сравнения были размещены в аргументе

Рис. 10.26. СУММПРОИЗВ требует, чтобы операторы сравнения были размещены в аргументе массив1, массив2 и т.д.; именно с этим связано большее время работы этой функции по сравнению, например, с СУММЕСЛИМН

Итак:

  • СУММЕСЛИ, СУММЕСЛИМН, СЧЁТЕСЛИ, СЧЁТЕСЛИМН: оператор сравнения может находиться, как в ячейке с критерием, так и внутри формулы
  • БДСУММ, БСЧЁТ: оператор сравнения должен находиться в ячейке с критерием
  • СУММПРОИЗВ: оператор сравнения следует поместить внутрь аргумента массив1

Далее будет рассмотрено несколько примеров, когда вычисления можно выполнить только с использованием СУММЕСЛИМН, СЧЁТЕСЛИМН и т.п., а также обратные ситуации, когда единственное решение – использование СУММПРОИЗВ.

Ссылка на книгу: СУММЕСЛИМН, СЧЁТЕСЛИМН и т.п. не справляются; используем СУММПРОИЗВ. Функции СУММЕСЛИМН, СЧЁТЕСЛИМН и т.п. содержат аргументы диапазон_суммирования и диапазон_условия1. Эти аргументы не могут обрабатывать массивы ни при каких обстоятельствах. Когда вы используете в формуле ссылку на книгу, а затем закроете книгу с внешними данными, ссылка на книгу преобразуется в массив и вызывает ошибку #ЗНАЧЕН! Как показано на рис. 10.27, когда книга с внешними данными открыта, нет никаких проблем: функция СУММЕСЛИМН правильно вычисляет сумму – 41. Однако, как показано на рис. 10.28, когда книга с внешними данными закрыта, СУММЕСЛИМН дает ошибку. Аналогичная ошибка возникает, если вы используете ссылки на книгу в функциях, подобных СУММЕСЛИМН, например, в СЧЁТЕСЛИМН. В то же время СУММПРОИЗВ и при открытой книге с внешними данными (рис. 10.27), и при закрытой книге (рис. 10.28), работает без сбоев.

Рис. 10.27

Рис. 10.27. Когда книга с внешними данными открыта, ошибки нет

Рис. 10.28

Рис. 10.28. Когда книга с внешними данными закрыта, СУММЕСЛИМН возвращает ошибку, а СУММПРОИЗВ по-прежнему «в седле»

Примечание: создание ссылки на книгу в формулах аналогично добавлению обычный ссылки на ячейку. Разница лишь в том, что находясь в режиме редактирования формулы, вы можете кликнуть кнопку внешней книги внизу экрана на панели задач (или нажать Ctrl+Tab), чтобы перейти к внешней книге, а затем выбрать в ней нужный лист и диапазон ячеек. Кроме того, пока внешняя книга открыта, ссылка в формуле показывает только имя внешней книги и название листа. Когда внешняя книга закрыта, ссылка показывает полное имя файла и путь к нему (см. рис. 10.28; видно, что я сохранил файл на Dropbox).

Если вы всё же хотите использовать функцию СУММЕСЛИМН и т.п. (а не СУММПРОИЗВ), то можно преодолеть проблему внешних ссылок, размещая формулы суммирования/счета/усреднения в самой внешней книге, а затем просто ссылаться на результаты из рабочей книги.

Рассмотрим пример: сколько пятниц 13-е находится между двумя датами?

Примечание: издатель этой книги, Билл MrExcel Джелен, специально попросил меня включить в книгу этот пример, потому что это его любимая формула массива!

Как показано на рис. 10.29, цель формулы – найти и вернуть в ячейку единственное значение: количество «пятниц 13-е», находящееся между двумя датами. На первый взгляд это кажется практически невыполнимой задачей! Особенно, учитывая, что у вас нет полного список дат.

Рис. 10.29. Цель – подсчитать количество «пятниц 13-е», находящееся между двумя датами

Рис. 10.29. Цель – подсчитать количество «пятниц 13-е», находящееся между двумя датами

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

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

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

Если выделить целиком формулу =СТРОКА(…) и нажать F9, можно будет увидеть результирующий массив, возвращаемый этой формулой. На рис. 10.31 показана небольшую часть этого массива; всего в нем 701 дата.

Рис. 10.31. Формула ДВССЫЛ() возвращает массив, заполненный датами

Рис. 10.31. Формула ДВССЫЛ() возвращает массив, заполненный датами (в присущем Excel формате)

Далее вам надо представить даты в «правильном» формате. Используйте для этого функцию ТЕКСТ, указав, например, формат "ДДД Д". В этом формате одновременно присутствует и день недели (ДДД) и день месяца (Д), например, Пт 13, Сб 14… Поместите функцию СТРОКА(ДВССЫЛ()) в аргумент значение функции ТЕКСТ (рис. 10.32).

Рис. 10.32

Рис. 10.32. Функция ТЕКСТ позволяет представить даты в требуемом формате

Чтобы проверить, что возвращает функция ТЕКСТ, выделите ее целиком и нажмите F9. На рис. 10.34 показана часть массива (по-прежнему, из 701 элемента), одна из дат "Пт 13" выделена.

Рис. 10.33

Рис. 10.34. Массив, возвращаемый функцией ТЕКСТ, показывает текстовые строки, содержащие день недели номер дня в месяце

Далее вы должны преобразовать массив текстовых строк в массив логических значений, путем сравнения массива и текстовой строки "Пт 13" (рис. 10.35).

Рис. 10.35. Оператор сравнения задает вопрос, есть ли день равный Пт 13

Рис. 10.35. Оператор сравнения задает вопрос: «есть ли день равный "Пт 13"»?

На рис. 10.36 показана небольшая часть массива, возвращаемого оператором сравнения. Массив содержит 701 логическое значение. ИСТИНА соответствует дню "Пт 13"!

Рис. 10.36. ИСТИНА соответствует дню Пт 13

Рис. 10.36. ИСТИНА соответствует дню "Пт 13"

На рис. 10.37 показана распространенная ошибка, которую совершают многие пользователи Excel (включая меня) – попытка поместить формулу ТЕКСТ(…) в аргумент диапазон функции СЧЁТЕСЛИ. Что вполне логично, тем более что большинство аргументов функций Excel может обрабатывать операции с массивами (единственное рассмотренное до сих пор исключение относилось к аргументу искомое_значение функции ВПР). Ведь всё что вам нужно, это подсчитать количество значений ИСТИНА в массиве, возвращаемом формулой ТЕКСТ(). К сожалению, в этом месте подстерегает второе исключение: аргумент диапазон функции СЧЁТЕСЛИ также не поддерживает операции с массивами.

Рис. 10.37. Оператор массива не работает в аргументе диапазон функции СЧЁТЕСЛИ

Рис. 10.37. Оператор массива не работает в аргументе диапазон функции СЧЁТЕСЛИ

Но как только вы попробуете ввести в ячейку формулу, изображенную на рис. 10.37, вы получите сообщение об ошибке. На рис. 10.39 приведено сообщение об ошибке характерное для Excel 2013; в других версиях, вы можете получить несколько иное сообщение.

Рис. 10.39. Сообщение об ошибке

Рис. 10.39. Размещая оператор массива в аргументе диапазон функции СЧЁТЕСЛИ, вы получите следующее не очень информативное сообщение об ошибке

В функциях СУММЕСЛИ, СЧЁТЕСЛИ, СРЗНАЧЕСЛИ, СУММЕСЛИМН, СЧЁТЕСЛИМН и СРЗНАЧЕСЛИМН аргументы диапазон и диапазон_условия не поддерживают операции с массивами. На помощь приходит функция СУММПРОИЗВ. Как показано на рис. 10.40 и 10.41, вы можете поместить оператор сравнения массивов в скобки, добавить перед ним двойное отрицание, и получить результат.

Рис. 10.40. СУММПРОИЗВ работает с операторами массивов

Рис. 10.40. СУММПРОИЗВ работает с операторами массивов

Рис. 10.41. Найдено три значения «пятница 13-е» между начальной и конечной датами

Рис. 10.41. Найдено три значения «пятница 13-е» между начальной и конечной датами

Функция ЕСЛИ внутри СУММПРОИЗВ. В главе 4 рассматривалось козырное правило функции ЕСЛИ: независимо от того, где в большой формуле размещена функция ЕСЛИ, формула массива всегда будет требовать нажатия Ctrl+Shift+Enter. Это означает, что если вы взяли функцию, которая может обрабатывать массив без нажатия Ctrl+Shift+Enter (например, АГРЕГАТ или СУММПРОИЗВ) и пометили внутрь функцию ЕСЛИ, то теперь формула будет требовать нажатия Ctrl+Shift+Enter.

Как показано на рис. 10.42, если вы используете ЕСЛИ внутри функции СУММПРОИЗВ, формула требует Ctrl+Shift+Enter. Формула в ячейке А5 была введена с помощью Enter что привело к ошибке #ЗНАЧ! Формула в ячейке A6 была введена с Ctrl+Shift+Enter и поэтому рассчитывает правильно. Проблема с использованием функции ЕСЛИ внутри СУММПРОИЗВ заключается в том, что пользователи электронной таблицы могут ошибочно думать, что аргумент массив функции СУММПРОИЗВ массив аргументов может обрабатывать оператор массива внутри функции ЕСЛИ. Чтобы избежать возможной двусмысленности, лучше использовать формулы, использованные в ячейках А10 и А11.

Рис. 10.42. Использование функции ЕСЛИ внутри СУММПРОИЗВ может привести к неоднозначности

Рис. 10.42. Использование функции ЕСЛИ внутри СУММПРОИЗВ может привести к неоднозначности

Основные аспекты использования функции СУММПРОИЗВ:

  • Умножает массивы одинаковой размерности, а затем суммирует результаты умножения.
  • Суммирует результаты возвращаемые оператором массива без нажатия Ctrl+Shift+Enter.
  • Может выполнять операции с массивами различной размерности; в этом случае оператор массива следует разместить в одном аргументе.
  • Обрабатывает ссылки на внешнюю книгу, в то время как СУММЕСЛИМН и т.п. не могут этого.
  • Работает с операторами массивов, в то время как аргументы диапазон и диапазон_условия функции СУММЕСЛИМН и т.п. этого не делают.
  • Если у вас Excel 2007 (или более поздняя версия), для расчетов с несколькими критериями следует предпочесть СУММЕСЛИМН, СЧЁТЕСЛИМН и т.п.
  • Если вы делаете расчеты с несколькими критериями и вам не нужно копировать формулу, наиболее эффективными могут быть функции базы данных.
  • При использования функции ЕСЛИ внутри СУММПРОИЗВ, требуется нажатие Ctrl+Shift+Enter; чтобы не допускать двусмысленности, рекомендуется использовать альтернативную формулу.

Excel – довольно популярная программа в бухгалтерском учете. И специалисты этой сферы нередко используют функцию СУММПРОИЗВ в своем нелегком деле. Она позволяет им быстро рассчитать заработную плату.

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

Содержание

  1. Функция СУММПРОИЗВ — подробное описание
  2. Синтаксис функции СУММПРОИЗВ
  3. Функция СУММПРОИЗВ с условием
  4. Сравнение в функции СУММПРОИЗВ
  5. Стандартное использование СУММПРОИЗВ
  6. Логические связки И и ИЛИ (AND и OR)
  7. Нахождение суммы произведений элементов массивов
  8. Суммирование и подсчет значений отвечающих критериям
  9. Проверка нескольких условий
  10. СУММПРОИЗВ как формула массива
  11. Подсчет по данным из закрытого файла

Функция СУММПРОИЗВ — подробное описание

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

Сами способы следующие:

  1. Определение суммы произведений массива.
  2. Проверка значения на предмет соответствия определенным критериям, получение их произведений и суммирования.
  3. Использование в качестве замены формулы массива.

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

Синтаксис функции СУММПРОИЗВ

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

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

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

Функция СУММПРОИЗВ в Excel - применение, синтаксис, примеры

1

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

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

Внимание! Мы использовали исключительно значения длины и ширины в качестве аргументов функции. Колонка с площадью по каждому осталась для того, чтобы возможно было наглядно сравнить функции СУММ и СУММПРОИЗВ.

Функция СУММПРОИЗВ в Excel - применение, синтаксис, примеры

2

Функция СУММПРОИЗВ с условием

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

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

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

Чтобы выполнить эту задачу с помощью этой функции, необходимо ее использовать и записать два условия в самом начале. Каждое из условий заключается в скобках. Поскольку в нашем случае должно быть соответствие сразу двум критериям, то мы использовали символ звездочки (*). Синтаксис виден на этом скриншоте. Вам достаточно просто подставить соответствующие вашему случаю значения в необходимые места. И дело сделано!

Функция СУММПРОИЗВ в Excel - применение, синтаксис, примеры

3

Давайте рассмотрим аргументы более подробно:

  1. Первое условие записывается в первых скобках.
  2. Второе условие записывается во вторых скобках.
  3. Третий аргумент – это массив, сумму из которого необходимо извлечь. 

Итоговый результат – 3700 рублей. Если распространить эту формулу на остальные строки и заменить условия в каждой из них, можно получить значения, характерные для другого отчетного периода или иной статьи расходов. К сожалению, лучше автоматизировать этот процесс не получится. Придется некоторые показатели править вручную. Но такова жизнь. Правда, если научиться писать макросы, можно добиться абсолютно любых уровней автоматизации при работе с электронными таблицами. 

Функция СУММПРОИЗВ в Excel - применение, синтаксис, примеры

4

Сравнение в функции СУММПРОИЗВ

Сравнение – один из вариантов использования функции СУММПРОИЗВ. Осуществляется оно таким же образом, как и если опираться на критерий. Значительно проще продемонстрировать работу сравнения в функции СУММПРОИЗВ сразу на конкретном примере. Допустим, нам усложнили задачу. Нам теперь нужно не все расходы определить, а только мелкие. Допустим, это те затраты, сумма которых меньше 1000 рублей. 

Аргументы в функции используем такие же, но к ним добавляем оператор сравнения. То бишь, в нашем случае – D:D<=1000. В результате вычислений была получена цифра 1000.

Функция СУММПРОИЗВ в Excel - применение, синтаксис, примеры

5

Что это за показатель? А это та тысяча, которую использовали для покупки карандашей в начале года. А после того, как нами был добавлен дополнительный критерий, ответ получился следующим.

Функция СУММПРОИЗВ в Excel - применение, синтаксис, примеры

6

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

Стандартное использование СУММПРОИЗВ

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

=СУММПРОИЗВ(Массив1; Массив2; … )

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

Количество диапазонов, которые можно использовать, ограничено 255 штуками. Но этого более, чем достаточно. Главное требование – они должны быть одного размера.

Функция СУММПРОИЗВ в Excel - применение, синтаксис, примеры

7

По сути, функция аналогична такому выражению.

=B2*C2+B3*C3+B4*C4+B5*C5

Логические связки И и ИЛИ (AND и OR)

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

Функция СУММПРОИЗВ в Excel - применение, синтаксис, примеры

8

Нахождение суммы произведений элементов массивов

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

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

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

Обязательное требование к массивам – наличие одинаковых размерностей. Если массивы будут содержать разное количество элементов, будет возвращена ошибка #ЗНАЧ!.

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

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

В случае, если нами будет записана такая формула, результат будет нулевым: =СУММПРОИЗВ(A3:A6>2). Если перейти в строку формул, и там выделить ту часть, которая написана в скобках, а потом нажать на F9, то будет получен массив: ИСТИНА:ИСТИНА и ИСТИНА:ЛОЖЬ. 

Если мы получаем такой результат, то значит, все хорошо.

Здесь надо учитывать один нюанс: если значение ИСТИНА равняется единице, а ЛОЖЬ – нулю, это еще не значит, что с этими числами можно выполнять какие-либо математические операции. Чтобы это сделать, необходимо использовать два знака минуса, которые находятся рядом. В этом случае массив будет переведен в числовую форму, и с ним можно выполнять математические операции. 

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

=СУММПРОИЗВ(—(B3:B6=»яблоки»))

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

Проверка нескольких условий

Чтобы осуществить проверку на предмет соответствия сразу нескольким условиям, необходимо умножать критерии между собой или складывать их (использовать знак +). То бишь, применять описанные выше логические операторы. 

СУММПРОИЗВ как формула массива

Функция СУММПРОИЗВ может использоваться и в качестве формулы массива. Когда это нужно делать? Прежде всего, когда необходимо осуществлять операции с большим количеством значений. В этом случае можно не использовать формулу массива СУММ, а просто заменить ее функцией СУММПРОИЗВ. Есть несколько примеров, как можно это использовать на практике.

=СУММПРОИЗВ(—ЕПУСТО(D2:D23)) – в этом случае ищутся пустые ячейки в диапазоне, подсчет которых осуществляется потом. 

=СУММПРОИЗВ((A3:A6>СРЗНАЧ(A3:A6))*(A3:A6)) – здесь осуществляется отбор значений, которые больше среднего арифметического, после чего подсчитывается их сумма. 

Подсчет по данным из закрытого файла

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

Вот скриншот, где мы получаем данные о восточном филиале компании. 

Функция СУММПРОИЗВ в Excel - применение, синтаксис, примеры

9

Как оно работает в других формулах (вернее, не работает)? Если документ, из которого черпается информация, не открыт в данный момент, то появляется ошибка #ЗНАЧ! В случае же с использованием функции СУММПРОИЗВ, если попытаться считать данные из файла, это получится сделать. Это открывает широчайшие возможности, поскольку дает возможность пользоваться недорогими компьютерами для выполнения сложных вычислений или сравнений.

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

Оцените качество статьи. Нам важно ваше мнение:

Понравилась статья? Поделить с друзьями:
  • Excel перемещение ячеек стрелками
  • Excel перемещение ячеек в таблице
  • Excel перемещение строк горячие клавиши
  • Excel перемещение по ячейкам стрелками как вернуть
  • Excel перемещение по ячейкам клавишами