Хитрости »
Основные понятия (22)Здесь собраны статьи, в которых разъясняются базовые понятия работы в Excel и VBA, а так же проблемы, с которыми сталкивается большинство начинающих
Сводные таблицы и анализ данных (5) Раздел поможет изучить сводные таблицы и научиться их использовать "на полную"
Графики и диаграммы (4) Раздел поможет научиться создавать диаграммы и графики в Excel, в том числе нестандартные
Работа с VB проектом (10) С помощью статей раздела вы научитесь создавать процедуры программно и выполнять различные операции с объектами самого VBA
Power BI и Power Query (5) Здесь собраны статьи, раскрывающие различные возможности мощнейшего инструмента для визуализаций бизнесс-процессов Power BI и надстройки для Excel Power Query
Условное форматирование (5) Этот раздел поможет поближе познакомиться с Условным форматированием на примерах различных ситуаций
Списки и диапазоны (5) Статьи, посвященные работе не только с выпадающими списками, но и с диапазонами и хитростями их применения в рабочих файлах
Макросы(VBA процедуры) (59) Статьи раздела направлены на изучение VBA с детальным разбором кодов. Множество статей с примерами кодов под всевозможные ситуации с комментариями и пояснениями
Разное (34) Собраны статьи, которые не подходят ни под одну из представленных выше категорий или входят сразу в несколько. Но эти статье не менее полезные!

Функция СУММЕСЛИ, а так же СУММЕСЛИ по двум критериям

Представим себе таблицу, в которой в строках вперемешку указаны названия счетов(или отделов).
Таблица

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

Всего для СУММЕСЛИ предусмотрено три аргумента: Диапазон, Критерий, Диапазон_Суммирования.
=СУММЕСЛИ(A1:A20000;A1;B1:B20000)
Диапазон(A1:A20000) - указывается диапазон с критериями. Т.е. столбец, в котором искать значение, указанное аргументом Критерий.
Критерий(A1)- значение(текстовое или числовое, а так же дата), которое необходимо найти в Диапазоне. Может содержать символы подстановки "*" и "?". Т.е. указав в качестве Критерия "*масса*" Вы сможете просуммировать по значениям, в которых встречается слово "масса". А указав "масса*" - значения, начинающиеся на "масса". "?" - заменяет лишь один символ, т.е. указав "мас?а" вы сможете просуммировать строки и со значением "масса" и со значением "маска" и т.д.
Все текстовые критерии и критерии с логическими и математическими знаками необходимо заключать в двойные кавычки ("). Если критерием является число, использовать кавычки не требуется. Если требуется найти непосредственно вопросительный знак или звездочку, необходимо поставить перед ним знак "тильды" (~).
Диапазон_Суммирования (B1:B20000)(необязательный аргумент) - указывается диапазон сумм или числовых значений, которые необходимо просуммировать.
Сначала поясню общий момент: функция ищет в Диапазоне значение, указанное аргументом Критерий, и при нахождении совпадения суммирует данные, указанные аргументом Диапазон_Суммирования. Т.е. если у Вас в столбце А название отдела, а в столбце В суммы, то указав в качестве критерия "Отдел развития", то результатом функции будет сумма всех значений столбца В, напротив которых в столбце А встречается "Отдел развития". Диапазон_Суммирования может не совпадать по размеру с аргументом Диапазон. Однако при определении ячеек для суммирования, в качестве начальной ячейки для суммирования будет использована верхняя левая ячейка аргумента Диапазон_Суммирования, а затем суммируются ячейки, соответствующие по размеру и форме аргументу Диапазон.

Некоторые особенности
Последний аргумент функции(Диапазон_Суммирования - B1:B20000) является необязательным. А это значит, что его можно не указывать. Если его не указать, то функция просуммирует значения, указанные аргументом Диапазон. Для чего это нужно. Например, Вам необходимо получить сумму только тех чисел, которые больше нуля. В столбце А суммы. Тогда функция будет иметь такой вид:
=СУММЕСЛИ(A1:A20000;">0")

Еще одна мелочь, которую стоит учитывать: диапазон_суммирования и диапазон должны быть равны по количеству строк. Иначе можно получить неверный результат. Оптимально, если это будет выглядеть как в приведенных мной формулах: диапазон и диапазон_суммирования начинаются с одной строки и имеют одинаковое количество строк: A1:A20000; B1:B20000


Суммирование по двум и более критериям
Но что делать, когда критериев для суммирования 2 и больше? Допустим, Вам надо просуммировать только те суммы, которые относятся к одному отделу и только за определенную дату. Счастливые обладатели версий офиса 2007 и выше могут воспользоваться функцией СУММЕСЛИМН:
=СУММЕСЛИМН($C$2:$C$50;$A$2:$A$50;$I$3;$B$2:$B$50;$H8)
$C$2:$C$50 - диапазон_суммирования. Первым аргументов указывается диапазон ячеек, содержащих суммы, которые и будут собираться в одну.
$A$2:$A$50, $B$2:$B$50 - Диапазон_критерия. Указывается диапазон ячеек, в которых необходимо искать совпадение по критерию.
$I$3, $H8 - критерий. Здесь, как и в СУММЕСЛИ, допускается указание символов подстановки * и ? и работают они так же.

Особенность указания аргументов: сначала указывается диапазон критерия(они пронумерованы) затем через точку-с-запятой указывается непосредственно значение(критерий), которое в этом диапазоне необходимо найти - $A$2:$A$50;$I$3. И никак иначе. Не стоит пытаться сначала указать все диапазоны, а потом критерии к ним - функция выдаст либо ошибку, либо просуммирует не то, что надо.

Все условия сравниваются по принципу И. Это значит, что если все перечисленные условия выполняются. Если хоть одно условие не выполняется - функция пропускает строку и ничего не суммирует.
Так же как и для СУММЕСЛИ диапазоны суммирования и критериев должны быть равны по количеству строк.


Т.к. СУММЕСЛИМН появилась только в версиях Excel, начиная с 2007, то как же быть в таких случаях несчастным пользователям более ранних версий? Очень просто: использовать другую функцию - СУММПРОИЗВ. Не буду расписывать аргументы, т.к. их много и все они являются массивами значений. Данная функция перемножает массивы, указанные аргументами. Я постараюсь описать общий принцип использования этой функции для суммирования данных по нескольким условиям.
Для решения задачи суммирования по нескольким критериям функция будет выглядеть так:
=СУММПРОИЗВ(($A$2:$A$50=$I$3)*($B$2:$B$50=H5);$C$2:$C$50)
$A$2:$A$50 - диапазон дат. $I$3 - дата критерия, за которую необходимо просуммировать данные.
$B$2:$B$50 - наименования отделов. H5 - наименование отдела, данные по которому необходимо просуммировать.
$C$2:$C$50 - диапазон с суммами.

Разберем логику, т.к. многим она будет совершенно не ясна просто при взгляде на данную функцию. Хотя бы потому, что в справке подобное её применение не описывается. Для большей читабельности уменьшим размеры диапазонов:
=СУММПРОИЗВ(($A$2:$A$5=$I$3)*($B$2:$B$5=H5);$C$2:$C$5)
Итак, выражение ($A$2:$A$5=$I$3) и ($B$2:$B$5=H5) являются логическими и возвращают массивы логических ЛОЖЬ и ИСТИНА. ИСТИНА, если ячейка диапазона $A$2:$A$5 равна значению ячейки $I$3 и ячейка диапазона $B$2:$B$5 равна значению ячейки H5. Т.е. получается у нас следующее:
=СУММПРОИЗВ({ЛОЖЬ;ИСТИНА;ИСТИНА;ЛОЖЬ}*{ЛОЖЬ;ЛОЖЬ;ИСТИНА;ЛОЖЬ};$C$2:$C$50)
Как видно, в первом массиве два совпадения условию, а во втором одно. Далее эти два массива перемножаются(за это отвечает знак умножения(*)). При перемножения происходит неявное преобразование массивов ЛОЖЬ и ИСТИНА в числовые константы 0 и 1 соответственно({0;1;1;0}*{0;0;1;0}). Как известно, при умножении на нуль получаем нуль. И в результате получается один массив:
=СУММПРОИЗВ({0;0;1;0};$C$2:$C$50)
Далее происходит уже перемножение массива {0;0;1;0} на массив чисел в диапазоне $C$2:$C$50:
=СУММПРОИЗВ({0;0;1;0};{10;20;30;40})
И как результат получаем 30. Что нам и требовалось - мы получаем лишь ту сумму, которая соответствует критерию. Если сумм, удовлетворяющих критерию будет больше одной, то они будут просуммированы.

Преимущество СУММИРОИЗВ
Если у аргументов вместо знака умножения указать знак плюс:
($A$2:$A$5=$I$3)+($B$2:$B$5=H5)
то условия будут сравниваться по принципу ИЛИ: т.е. суммироваться итоговые суммы будут в случае, если хотя бы одно условие выполняется: или $A$2:$A$5 равна значению ячейки $I$3 или ячейка диапазона $B$2:$B$5 равна значению ячейки H5.
В этом преимущество СУММПРОИЗВ перед СУММЕСЛИМН. СУММЕСЛИМН не может суммировать значения по принципу ИЛИ, только по принципу И(все условия должны выполняться).

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


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

Скачать пример

  Tips_All_SUMPRODUCT.xls (29,5 KiB, 7 211 скачиваний)

Так же см.:
Суммирование ячеек по цвету заливки
Суммирование ячеек по цвету шрифта
Суммирование ячеек по формату ячейки
Подсчитать сумму ячеек по цвету заливки
Подсчитать сумму ячеек по цвету шрифта
Как просуммировать данные с нескольких листов, в том числе по условию


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

Поиск по меткам

Access Multex Outlook Power BI Power Query и Power BI VBA работа в редакторе VBA управление кодами Бесплатные надстройки Дата и время Диаграммы и графики Записки Защита Защита данных Интернет Картинки и объекты Листы и книги Макросы и VBA Настройка Поиск данных Почта Программы Работа с приложениями Работа с файлами Разработка приложений Сводные таблицы Списки Тренинги и вебинары Финансовые Форматирование Формулы и функции Функции Excel Функции VBA Ячейки и диапазоны акции MulTEx вебинар ссылки статьи тренинг
Обсуждение: оставлено 56 коммент.
  1. Алексей:

    Спасибо огромное Дмитрий за подсказку про условие СЕГОДНЯ(): ">"&A1
    Очень помогла в работе

  2. Виктор:

    А как просуммировать по нескольким критериям, находящимся в одном столбце таблицы ? Например есть таблица с полями счет, затраты. Некоторые счета относятся к прямым затратам, как вычислить сумму по ним.

  3. Ирина:

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

  4. Алексей:

    Добрый день. Подскажите пожалуйста еще раз про условие СЕГОДНЯ(). не нашел ответа в предыдущих комментариях. Спасибо

  5. Алексей:

    Спасибо, допёр.

  6. Денис:

    Подскажите пожалуйста как с помощью данной функции просуммировать ячейки по значениям в которых не встречается слово "*масса*"

  7. Владимир:

    Помогите пенсионеру! В ранее набранной таблице перестала работать формула СУММЕСЛИ(AD5:AD16;"<0") . Причем если формулу перенабрать - результат выдает равный 0. Сообщений диагностических нет.

    • Владимир, если офис 2007 и выше, то вкладка Формулы-Параметры вычислений. Установите галку Автоматически

      В 2003 точно уже не помню, под рукой нет. Сервис-вкладка Вычисления - Автоматически. Вроде так.

  8. Евгений:

    Данную функцию можно использовать если критерии поиска ( 1 - также столбец, 2 -это строка)? Попробовал, не работает, или где то ошибся( перепроверил все точно)

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

      • Евгений:

        Именно =суммпроизв , необходимо суммировать часовые объёмы в сутки( 1столбец поиск даты(24 шт=24 часам) и 2 строка поиск объекта ( сложность в том что объекты не по порядку ) поэтому ищем и ставим в том порядке который нужен. Надеюсь грамотно изложил мысль. Подскажите пожалуйста решение.
        На вашем примере ( идут даты в столбце а отделы в строку и необходимо суммировать ( отделы не повторяются ) только даты.

        • Евгений, как я покажу решение? Решение уже есть в примере к статье. Если хотите на своем примере - обратитесь в форум, там можно приложить файлы. Тогда будет куда яснее как и что делать.
          Пока что ничего не ясно и тратить время на подкидывание Вам вариантов нет желания.

  9. Роксана:

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

    • Роксана, я так сходу не отвечу на вопрос. Может и можно изобрести какую формулу, но без файла-примера трудно понять. Напишите в форум, приложив файл - тогда можно будет поискать пути решения. Спасибо.

Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум


Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Логин
Наши партнеры
Перейти
Перейти
Счетчики
Анализ сайта

Яндекс.Метрика
© 2016 Excel для всех  Войти