Представим себе таблицу, в которой в строках вперемешку указаны названия отделов(или счетов, или еще чего-то).
Необходимо вычислить общую сумму по каждому отделу. Многие делают это при помощи фильтра и записи ручками в ячейки.
Хотя сделать это можно легко и просто при помощи всего одной функции - СУММЕСЛИ.
Всего для СУММЕСЛИ предусмотрено три аргумента: Диапазон, Критерий, Диапазон_Суммирования.
Диапазон ( ) - указывается диапазон с критериями. Т.е. столбец, в котором искать значение, указанное аргументом Критерий.A1:A20000 Критерий ( )- значение(текстовое или числовое, а так же дата), которое необходимо найти в Диапазоне. Может содержать символы подстановки "*" и "?". Т.е. указав в качестве Критерия "*масса*" будут просуммированы значения, в которых встречается слово "масса". При этом слово "A1 масса " может либо встречаться в любом месте текста, либо в ячейке может быть только одно это слово. А указав "масса* ", будут просуммированы все значения, начинающиеся на "масса". "?" - заменяет лишь один символ, т.е. указав "мас?а " вы сможете просуммировать строки и со значением "масса" и со значением "маска" и т.д.
Если критерий записан в ячейке и надо все же использовать подстановочные символы, то можно сделать ссылку на эту ячейку добавив нужное. Допустим, надо просуммировать значения, содержащие слово "итог ". Слово " " записано в ячейкеитог , в столбце A при этом могут встречаться различные по написанию значения, содержащие словоA1 "итог" :"итоги за июнь" ,"итоги за июль" ,"итоги за март" . Формула тогда должна выглядеть так:
=СУММЕСЛИ( A1:A20000 ;"*"&A1 &"*";B1:B20000 )
"*"& - знак &(амперсанд) объединяет несколько значений в одно. Т.е. в результате получится "*итог*".A1 &"*"
Чтобы лучше понять принцип работы формул лучше использовать инструмент Вычислить формулу: Как просмотреть этапы вычисления формул
Все текстовые критерии и критерии с логическими и математическими знаками необходимо заключать в двойные кавычки (=СУММЕСЛИ( ). Если критерием является число, использовать кавычки не требуется. Если требуется найти непосредственно вопросительный знак или звездочку, необходимо поставить перед ним знак "тильды" (~).A1:A20000 ;"итог";B1:B20000 )
Про тильду и её особенности можно узнать в этой статье: Как заменить/удалить/найти звездочку? Диапазон_Суммирования ( )(необязательный аргумент) - указывается диапазон сумм или числовых значений, которые необходимо просуммировать.B1:B20000
Последний аргумент функции(Диапазон_Суммирования -
как видно, первые два числа почти одинаковые, но у первого числа три ведущих нуля спереди, а второго - два. И это разные счета. А третий счет вообще отличается на последние цифры. Но СУММЕСЛИ после преобразования все три этих значения будет считать как число
Кстати, тоже самое будет и со значениями, которые можно преобразовать в дату. Например, в ячейках записаны такие значения:
01/02
01/03
01/04
01/22
01/23
Для значений "01/01" и "01/22" будет выведена одна и та же сумма(при условии, что текущий год 2022). Почему так?
Эти особенности всегда необходимо учитывать при использовании данных функций, чтобы не попасть в неловкую ситуацию, когда результат будет некорректным.
Но что делать, когда критериев для суммирования 2 и больше? Допустим, Вам надо просуммировать только те суммы, которые относятся к одному отделу и только за определенную дату. Счастливые обладатели версий офиса 2007 и выше могут воспользоваться функцией СУММЕСЛИМН:
Так же как и для СУММЕСЛИ диапазоны суммирования и критериев должны быть равны по количеству строк.
СУММЕСЛИМН так же как и СУММЕСЛИ приводит значения к типу, а это значит, что все числа с ведущими нулями и более 15 знаков могут быть вычислены некорректно.
Т.к. СУММЕСЛИМН появилась только в версиях Excel, начиная с 2007, то как же быть в таких случаях несчастным пользователям более ранних версий? Очень просто: использовать другую функцию - СУММПРОИЗВ. Не буду расписывать аргументы, т.к. их много и все они являются массивами значений. Данная функция перемножает массивы, указанные аргументами. Я постараюсь описать общий принцип использования этой функции для суммирования данных по нескольким условиям.
Для решения задачи суммирования по нескольким критериям функция будет выглядеть так:
Разберем логику, т.к. многим она будет совершенно не ясна просто при взгляде на данную функцию. Хотя бы потому, что в справке подобное её применение не описывается. Для большей читабельности уменьшим размеры диапазонов:
Итак, выражение
Как видно, в первом массиве два совпадения условию, а во втором одно. Далее эти два массива перемножаются(за это отвечает знак умножения(*)). При перемножения происходит неявное преобразование массивов ЛОЖЬ и ИСТИНА в числовые константы 0 и 1 соответственно({0;1;1;0}*{0;0;1;0}). Как известно, при умножении на нуль получаем нуль. И в результате получается один массив:
Далее происходит уже перемножение массива {0;0;1;0} на массив чисел в диапазоне
И как результат получаем 30. Что нам и требовалось - мы получаем лишь ту сумму, которая соответствует критерию. Если сумм, удовлетворяющих критерию будет больше одной, то они будут просуммированы.
- Если у аргументов вместо знака умножения указать знак плюс:
( $A$2:$A$5 =$I$3 )+($B$2:$B$5 =H5 )
то условия будут сравниваться по принципу ИЛИ: т.е. суммироваться итоговые суммы будут в случае, если хотя бы одно условие выполняется: или равна значению ячейки$A$2:$A$5 или ячейка диапазона$I$3 равна значению ячейки$B$2:$B$5 .H5
В этом преимущество СУММПРОИЗВ перед СУММЕСЛИМН. СУММЕСЛИМН не может суммировать значения по принципу ИЛИ, только по принципу И(все условия должны выполняться). - СУММПРОИЗВ не приводит значения к типам, а это значит, что значения вроде
будут восприняты как есть, без всякого отсечения ведущих нулей и знаков после 15-го.000 34889913131323455,00 34889913131323455,000 34889913131323477 - СУММПРОИЗВ может работать с закрытыми книгами. Например, из одной книги суммируется данные по таблице другой книги. После того как закроете книгу-источник, СУММЕСЛИ и СУММЕСЛИМН выдадут ошибку
#ЗНАЧ! . А СУММПРОИЗВ продолжит работать как ни в чем не бывало.(#VALUE) - если вдруг потребовалось получить не сумму, а количество ячеек, удовлетворяющих критериям - из СУММПРОИЗВ достаточно удалить диапазон ячеек для суммирования:
=СУММПРОИЗВ(( $A$2:$A$50 =$I$3 )*($B$2:$B$50 =H5 ))
В СУММПРОИЗВ невозможно использовать символы подстановки * и ?. Точнее использовать можно, но они будут восприняты не как спец.символы, а как непосредственно звездочка и вопр.знак. Я считаю это существенным минусом. И хотя это можно обойти, использую внутри СУММПРОИЗВ иные функции - все же было бы замечательно, если бы функция каким-то образом могла использовать символы подстановки.
В приложенном файле-примере найдете пару примеров функций для более лучшего понимания написанного выше.
Сумма по нескольким критериям (41,5 КиБ, 14 554 скачиваний)
Так же см.:
Суммирование ячеек по цвету заливки
Суммирование ячеек по цвету шрифта
Суммирование ячеек по формату ячейки
Подсчитать сумму ячеек по цвету заливки
Подсчитать сумму ячеек по цвету шрифта
Как просуммировать данные с нескольких листов, в том числе по условию
Спасибо огромное Дмитрий за подсказку про условие СЕГОДНЯ(): ">"&A1
Очень помогла в работе
А как просуммировать по нескольким критериям, находящимся в одном столбце таблицы ? Например есть таблица с полями счет, затраты. Некоторые счета относятся к прямым затратам, как вычислить сумму по ним.
Достаточно внимательно прочитать статью
Александр, не написано. А читал внимательно. Как все таки суммировать все значения по двум наименованиям (условиям), находящихся в одном столбце? Спасибушки
Junkie, если вопрос мне - то я не Александр. И все написано, главное уловить суть и попробовать лично, а не искать ответ именно на свой вопрос :) СУММПРОИЗВ умеет суммировать по нескольким критериям и неважно где они находятся. Вопрос в том, что в этом случае можно применить и две СУММЕСЛИ, т.к. по факту два условия в одном столбце это суммирование значений если либо одно либо второе выполняется.
=СУММПРОИЗВ(($A$2:$A$5=$I$3)+($A$2:$A$5=$I$4);$C$2:$C$5)
Если вчитаться в статью, то для СУММПРОИЗВ надо просто выставить условие ИЛИ:
спасибо, Дмитрий. Лень двигатель процессов :)
здорово!
я пользовалась функцией СУММЕСЛИМН, но при открытии книги в более ранней версии все формулы портились.
теперь буду пользоваться СУММПРОИЗВ!
Добрый день. Подскажите пожалуйста еще раз про условие СЕГОДНЯ(). не нашел ответа в предыдущих комментариях. Спасибо
Спасибо, допёр.
Подскажите пожалуйста как с помощью данной функции просуммировать ячейки по значениям в которых не встречается слово "*масса*"
Помогите пенсионеру! В ранее набранной таблице перестала работать формула СУММЕСЛИ(AD5:AD16;"<0") . Причем если формулу перенабрать - результат выдает равный 0. Сообщений диагностических нет.
Владимир, если офис 2007 и выше, то вкладка Формулы-Параметры вычислений. Установите галку Автоматически
В 2003 точно уже не помню, под рукой нет. Сервис-вкладка Вычисления - Автоматически. Вроде так.
Данную функцию можно использовать если критерии поиска ( 1 - также столбец, 2 -это строка)? Попробовал, не работает, или где то ошибся( перепроверил все точно)
Данную - это какую? В статье три функции описаны. СУММЕСЛИ и СУММЕСЛИМН не могут работать с разнонаправленными диапазонами(т.е. либо только строки, либо только столбцы). СУММПРОИЗВ может, но надо понимать правильно принцип работы функции, чтобы получить верный результат.
Именно =суммпроизв , необходимо суммировать часовые объёмы в сутки( 1столбец поиск даты(24 шт=24 часам) и 2 строка поиск объекта ( сложность в том что объекты не по порядку ) поэтому ищем и ставим в том порядке который нужен. Надеюсь грамотно изложил мысль. Подскажите пожалуйста решение.
На вашем примере ( идут даты в столбце а отделы в строку и необходимо суммировать ( отделы не повторяются ) только даты.
Евгений, как я покажу решение? Решение уже есть в примере к статье. Если хотите на своем примере - обратитесь в форум, там можно приложить файлы. Тогда будет куда яснее как и что делать.
Пока что ничего не ясно и тратить время на подкидывание Вам вариантов нет желания.
Если критериев несколько и они равнозначны., т.е. в одном столбце находятся. Только суммированием этих СУММЕСЛИ? Иногда эти критерии отбора тоже могут занимать сотни строк, прописывать по каждому критерию формулу долго. Да и формулу надо уместить в одну ячейку, без создания дополнительных ячеек и отдельных строк для расчета...
Т.е. резюмирую, можно ли внутри самой формулы в блоке, где указываем критерий использовать формулу или какой-то еще способ для указания нескольких равноценных критериев? (сколько сумма по юридическому отделу и отделу финансирования вместе взятым, без учета дат?)
Роксана, я так сходу не отвечу на вопрос. Может и можно изобрести какую формулу, но без файла-примера трудно понять. Напишите вфорум , приложив файл - тогда можно будет поискать пути решения. Спасибо.
Добрый день! Простите, если глупость спрашиваю, но как из столбца цифр выбрать (просуммировать) только те, которые одновременно больше например, 10, но меньше 20.
Т.е. как-то так: СУММЕСЛИ(А2:А30; "И(>=10; <20)" )
Понимаю, что написанное в ковычках неправильно... подскажите как одновременно учесть оба условия. СУММЕСЛИМН тоже лишь перечисляет критерии, выбирая сначала все числа больше 10, а потом ещё все меньше 20, а нужно только числа от 10 до 20.
Сергей, не совсем понял что именно не получается в случае с СУММЕСЛИМН. Так должно работать - будет считать числа от 10(включительно) до 20(так же включительно):
=СУММЕСЛИМН(B1:B20;A1:A20;">=10";A1:A20;"<=20")
Хотя опять же не совсем понятно, что значит считать. Если надо именно подсчитать сколько таких чисел - то применять надо СЧЁТЕСЛИМН, а не СУММЕСЛИМН.