Планета excel суммпроизв в 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) спокойно считает по данным даже из неоткрытой книги!

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

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

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

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

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

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

Простейший пример использования функции

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

Сумма площадей.
СУММПРОИЗВ.

Обратите внимание, что нам не понадобился массив с промежуточными итогами. В аргументах функции мы использовали только массивы с длиной и шириной, а функция их автоматически перемножила и просуммировала, выдав тот же результат = 70.



СУММПРОИЗВ с условием

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

Рассмотрим пример. Имеем таблицу затрат небольшой компании за один расчетный месяц. Необходимо сосчитать общую сумму потраченных средств за январь и февраль по всем статьям расходов.

Для расчета затрат по канцелярии в январе-месяце, используем нашу функцию и указываем в начале 2 условия. Каждое из них заключаем в скобки, а между ними ставим знак «звездочка», подразумевающий союз «и». Получаем следующий синтаксис команды:

Расходы.

  • (А:А=»Январь») – первое условие;
  • (Е:Е=»канцелярия») – второе условие;
  • D:D – массив, из которого выводится итоговая сумма.

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

Пример.

Сравнение в СУММПРОИЗВ

Одним из условий при использовании команды СУММПРОИЗВ может быть сравнение. Рассмотрим сразу на примере. Предположим, что нам нужно сосчитать не просто все расходы по канцелярии за январь, а только те, которые составляли меньше 1000 рублей (назовем их «мелкие расходы»). Прописываем функцию с теми же аргументами, но дополнительно проставляем оператор сравнения. В данном случае он выглядит как D:D<=1000. Команда выдает ответ: 1000.

Сравнение.

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

Пример1.

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

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

Это глава из книги: Майкл Гирвин. 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; чтобы не допускать двусмысленности, рекомендуется использовать альтернативную формулу.

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))

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

    среднего

    .


Совет

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

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

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