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 Еще…Меньше
Функция СУММЕСЛИ используется, если необходимо просуммировать значения диапазон, соответствующие указанному критерию. Предположим, например, что в столбце с числами необходимо просуммировать только значения, превышающие 5. Для этого можно использовать следующую формулу: =СУММЕСЛИ(B2:B25;»> 5″)
Это видео — часть учебного курса Сложение чисел в Excel.
Советы:
-
При необходимости условия можно применить к одному диапазону, а просуммировать соответствующие значения из другого диапазона. Например, формула =СУММЕСЛИ(B2:B5; «Иван»; C2:C5) суммирует только те значения из диапазона C2:C5, для которых соответствующие значения из диапазона B2:B5 равны «Иван».
-
Если необходимо выполнить суммирование ячеек в соответствии с несколькими условиями, используйте функцию СУММЕСЛИМН.
Важно: Функция СУММЕСЛИ возвращает неверные результаты при использовании для сопоставления строк длиной более 255 символов или строкового #VALUE!.
Синтаксис
СУММЕСЛИ(диапазон; условие; [диапазон_суммирования])
Аргументы функции СУММЕСЛИ описаны ниже.
-
Диапазон — обязательный аргумент. Диапазон ячеек, оцениваемых на соответствие условиям. Ячейки в каждом диапазоне должны содержать числа, имена, массивы или ссылки на числа. Пустые и текстовые значения игнорируются. Выбранный диапазон может содержать даты в стандартном формате Excel (см. примеры ниже).
-
Условие .Обязательный аргумент. Условие в форме числа, выражения, ссылки на ячейку, текста или функции, определяющее, какие ячейки необходимо суммировать. Можно включить подстановочные знаки: вопросительный знак (?) для сопоставления с любым одним символом, звездочка (*) для сопоставления любой последовательности символов. Если требуется найти непосредственно вопросительный знак (или звездочку), необходимо поставить перед ним знак «тильда» (~).
Например, критерии можно выразить как 32, «>32», B5, «3?», «apple*», «*~?» или TODAY().
Важно: Все текстовые условия и условия с логическими и математическими знаками необходимо заключать в двойные кавычки («). Если условием является число, использовать кавычки не требуется.
-
Диапазон_суммирования .Необязательный аргумент. Ячейки, значения из которых суммируются, если они отличаются от ячеек, указанных в качестве диапазона. Если аргумент диапазон_суммирования опущен, Excel суммирует ячейки, указанные в аргументе диапазон (те же ячейки, к которым применяется условие).
Sum_range
должны иметь тот же размер и форму, что и диапазон. Если это не так, производительность может снизиться, и формула суммирует диапазон ячеек, который начинается с первой ячейки в sum_range но имеет те же размеры, что и диапазон. Например:
диапазон
Диапазон_суммирования.
Фактические суммированные ячейки
A1:A5
B1:B5
B1:B5
A1:A5
B1:K5
B1:B5
Примеры
Пример 1
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу Enter. При необходимости измените ширину столбцов, чтобы видеть все данные.
Стоимость имущества |
Комиссионные |
Данные |
---|---|---|
1 000 000 ₽ |
70 000 ₽ |
2 500 000 ₽ |
2 000 000 ₽ |
140 000 ₽ |
|
3 000 000 ₽ |
210 000 ₽ |
|
4 000 000 ₽ |
280 000 ₽ |
|
Формула |
Описание |
Результат |
=СУММЕСЛИ(A2:A5;»>160000″;B2:B5) |
Сумма комиссионных за имущество стоимостью больше 1 600 000 ₽. |
630 000 ₽ |
=СУММЕСЛИ(A2:A5; «>160000») |
Сумма по имуществу стоимостью больше 1 600 000 ₽. |
9 000 000 ₽ |
=СУММЕСЛИ(A2:A5;300000;B2:B5) |
Сумма комиссионных за имущество стоимостью 3 000 000 ₽. |
210 000 ₽ |
=СУММЕСЛИ(A2:A5;»>» &C2;B2:B5) |
Сумма комиссионных за имущество, стоимость которого превышает значение в ячейке C2. |
490 000 ₽ |
Пример 2
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу Enter. Кроме того, вы можете настроить ширину столбцов в соответствии с содержащимися в них данными.
Категория |
Продукты |
Объем продаж |
---|---|---|
Овощи |
Помидоры |
23 000 ₽ |
Овощи |
Сельдерей |
55 000 ₽ |
Фрукты |
Апельсины |
8 000 ₽ |
Масло |
4 000 ₽ |
|
Овощи |
Морковь |
42 000 ₽ |
Фрукты |
Яблоки |
12 000 ₽ |
Формула |
Описание |
Результат |
=СУММЕСЛИ(A2:A7;»Фрукты»;C2:C7) |
Объем продаж всех продуктов категории «Фрукты». |
20 000 ₽ |
=СУММЕСЛИ(A2:A7;»Овощи»;C2:C7) |
Объем продаж всех продуктов категории «Овощи». |
120 000 ₽ |
=СУММЕСЛИ(B2:B7;»*ы»;C2:C7) |
Объем продаж всех продуктов, названия которых заканчиваются на «ы» («Помидоры» и «Апельсины»). |
43 000 ₽ |
=СУММЕСЛИ(A2:A7;»»;C2:C7) |
Объем продаж всех продуктов, категория для которых не указана. |
4 000 ₽ |
К началу страницы
Дополнительные сведения
См. также
Функция СУММЕСЛИМН
СЧЁТЕСЛИ
Суммирование значений с учетом нескольких условий
Рекомендации, позволяющие избежать появления неработающих формул
Функция ВПР
Нужна дополнительная помощь?
Выборочные вычисления по одному или нескольким критериям
Постановка задачи
Имеем таблицу по продажам, например, следующего вида:
Задача: просуммировать все заказы, которые менеджер Григорьев реализовал для магазина «Копейка».
Способ 1. Функция СУММЕСЛИ, когда одно условие
Если бы в нашей задаче было только одно условие (все заказы Петрова или все заказы в «Копейку», например), то задача решалась бы достаточно легко при помощи встроенной функции Excel СУММЕСЛИ (SUMIF) из категории Математические (Math&Trig). Выделяем пустую ячейку для результата, жмем кнопку fx в строке формул, находим функцию СУММЕСЛИ в списке:
Жмем ОК и вводим ее аргументы:
- Диапазон — это те ячейки, которые мы проверяем на выполнение Критерия. В нашем случае — это диапазон с фамилиями менеджеров продаж.
- Критерий — это то, что мы ищем в предыдущем указанном диапазоне. Разрешается использовать символы * (звездочка) и ? (вопросительный знак) как маски или символы подстановки. Звездочка подменяет собой любое количество любых символов, вопросительный знак — один любой символ. Так, например, чтобы найти все продажи у менеджеров с фамилией из пяти букв, можно использовать критерий ?????. А чтобы найти все продажи менеджеров, у которых фамилия начинается на букву «П», а заканчивается на «В» — критерий П*В. Строчные и прописные буквы не различаются.
- Диапазон_суммирования — это те ячейки, значения которых мы хотим сложить, т.е. нашем случае — стоимости заказов.
Способ 2. Функция СУММЕСЛИМН, когда условий много
Если условий больше одного (например, нужно найти сумму всех заказов Григорьева для «Копейки»), то функция СУММЕСЛИ (SUMIF) не поможет, т.к. не умеет проверять больше одного критерия. Поэтому начиная с версии Excel 2007 в набор функций была добавлена функция СУММЕСЛИМН (SUMIFS) — в ней количество условий проверки увеличено аж до 127! Функция находится в той же категории Математические и работает похожим образом, но имеет больше аргументов:
При помощи полосы прокрутки в правой части окна можно задать и третью пару (Диапазон_условия3—Условие3), и четвертую, и т.д. — при необходимости.
Если же у вас пока еще старая версия Excel 2003, но задачу с несколькими условиями решить нужно, то придется извращаться — см. следующие способы.
Способ 3. Столбец-индикатор
Добавим к нашей таблице еще один столбец, который будет служить своеобразным индикатором: если заказ был в «Копейку» и от Григорьева, то в ячейке этого столбца будет значение 1, иначе — 0. Формула, которую надо ввести в этот столбец очень простая:
=(A2=»Копейка»)*(B2=»Григорьев»)
Логические равенства в скобках дают значения ИСТИНА или ЛОЖЬ, что для Excel равносильно 1 и 0. Таким образом, поскольку мы перемножаем эти выражения, единица в конечном счете получится только если оба условия выполняются. Теперь стоимости продаж осталось умножить на значения получившегося столбца и просуммировать отобранное в зеленой ячейке:
Способ 4. Волшебная формула массива
Если вы раньше не сталкивались с такой замечательной возможностью Excel как формулы массива, то советую почитать предварительно про них много хорошего здесь. Ну, а в нашем случае задача решается одной формулой:
=СУММ((A2:A26=»Копейка»)*(B2:B26=»Григорьев»)*D2:D26)
После ввода этой формулы необходимо нажать не Enter, как обычно, а Ctrl + Shift + Enter — тогда Excel воспримет ее как формулу массива и сам добавит фигурные скобки. Вводить скобки с клавиатуры не надо. Легко сообразить, что этот способ (как и предыдущий) легко масштабируется на три, четыре и т.д. условий без каких-либо ограничений.
Способ 4. Функция баз данных БДСУММ
В категории Базы данных (Database) можно найти функцию БДСУММ (DSUM), которая тоже способна решить нашу задачу. Нюанс состоит в том, что для работы этой функции необходимо создать на листе специальный диапазон критериев — ячейки, содержащие условия отбора — и указать затем этот диапазон функции как аргумент:
=БДСУММ(A1:D26;D1;F1:G2)
Skip to content
В таблицах Excel можно не просто находить сумму чисел, но и делать это в зависимости от заранее определённых критериев отбора. Хорошо знакомая нам функция ЕСЛИ позволяет производить вычисления в зависимости от выполнения условия. Функция СУММ позволяет складывать числовые значения. А что если нам нужна формула ЕСЛИ СУММ? Для этого случая в Excel имеется специальная функция СУММЕСЛИ.
Мы рассмотрим, как правильно применить функцию СУММЕСЛИ (Sumif в английской версии) в таблицах Excel. Начнем с самых простых случаев, как можно использовать при этом знаки подстановки, назначить диапазон суммирования, работать с числами, текстом и датами. Особо остановимся на том, как использовать сразу несколько условий. И, конечно, мы применим новые знания на практике, рассмотрев несложные примеры.
- Как пользоваться СУММЕСЛИ в Excel – синтаксис
- Примеры использования функции СУММЕСЛИ в Excel
- Сумма если больше чем, меньше, или равно
- Критерии для текста.
- Подстановочные знаки для частичного совпадения.
- Точная дата либо диапазон дат.
- Сумма значений, соответствующих пустым либо непустым ячейкам
- Сумма по нескольким условиям.
- Почему СУММЕСЛИ у меня не работает?
Хорошо, что функция СУММЕСЛИ одинакова во всех версиях MS Excel. Еще одна приятная новость: если вы потратите некоторое время на ее изучение, вам потребуется совсем немного усилий, чтобы понять другие «ЕСЛИ»-функции, такие как СУММЕСЛИМН, СЧЕТЕСЛИ, СЧЕТЕСЛИМН и т.д.
Как пользоваться СУММЕСЛИ в Excel – синтаксис
Её назначение – найти итог значений, которые удовлетворяют определённым требованиям.
Синтаксис функции выглядит следующим образом:
=СУММЕСЛИ(диапазон, критерий, [диапазон_суммирования])
Диапазон – это область, которую мы исследуем на соответствие определённому значению.
Критерий – это значение или шаблон, по которому мы производим отбор чисел для суммирования.
Значение критерия может быть записано прямо в самой формуле. В этом случае не забывайте, что текст нужно обязательно заключать в двойные кавычки.
Также он может быть представлен в виде ссылки на ячейку таблицы, в которой будет указано требуемое ограничение. Безусловно, второй способ является более рациональным, поскольку позволяет гибко менять расчеты, не редактируя выражение.
Диапазон_суммирования — третий параметр, который является необязательным, однако он весьма полезен. Благодаря ему мы можем производить поиск в одной области, а суммировать значения из другой в соответствующих строках.
Итак, если он указан, то расчет идет именно по его данным. Если отсутствует, то складываются значения из той же области, где производился поиск.
Чтобы лучше понять это описание, рассмотрим несколько простых задач. Надеюсь, что они будут понятны не только «продвинутым» пользователям, но и подойдут для «чайников».
Примеры использования функции СУММЕСЛИ в Excel
Сумма если больше чем, меньше, или равно
Начнем с самого простого. Предположим, у нас есть данные о продажах шоколада. Рассчитаем различные варианты продаж.
В I3 записано:
=СУММЕСЛИ(D2:D21;I2)
D2:D21 – это координаты, в которых мы ищем значение.
I2 – ссылка на критерий отбора. Иначе говоря, мы ищем ячейки со значением 144 и складываем их.
Поскольку третий параметр функции не указан, то мы сразу складываем отобранные числа. Область поиска будет одновременно являться и диапазоном суммирования.
Кроме того, в качестве задания для отбора нужных значений можно указать текстовое выражение, состоящее из знаков >, <, <>, <= или >= и числа.
Можно указать его прямо в формуле, как это сделано в I13
=СУММЕСЛИ(D2:D21;«<144»)
То есть подытоживаем все заказы, в которых количество меньше 144.
Но, согласитесь, это не слишком удобно, поскольку нужно корректировать саму формулу, да и условие еще нужно не забыть заключить в кавычки.
В дальнейшем мы будем стараться использовать только ссылку на критерий, поскольку это значительно упрощает возможные корректировки.
Критерии для текста.
Гораздо чаще встречаются ситуации, когда поиск нужно проводить в одном месте, а в другом — суммировать данные, соответствующие найденному.
Чаще всего это необходимо, если необходимо использовать отбор по определённым словам. Ведь текстовые значения складывать нельзя, а вот соответствующие им числа – можно.
Как простой прием использования формулы СУММ ЕСЛИ в Эксель таблицах, рассчитаем итог по выполненным заказам.
В I3 запишем выражение:
=СУММЕСЛИ(F2:F21;I2;E2:Е21)
F2:F21 – это область, в которой мы отбираем подходящие значения.
I2 – здесь записано, что именно отбираем.
E2:E21 – складываем числа, соответствующие найденным совпадениям.
Конечно, можно указать параметр отбора прямо в выражении:
=СУММЕСЛИ(F2:F21;”Да”;E2:Е21)
Но мы уже договорились, что так делать не совсем рационально.
Важное замечание. Не забываем, что все текстовые значения необходимо заключать в кавычки.
Подстановочные знаки для частичного совпадения.
При работе с текстовыми данными часто приходится производить поиск по какой-то части слова или фразы.
Вернемся к нашему случаю. Определим, сколько всего было заказов на черный шоколад. В результате, у нас есть 2 подходящих наименования товара. Как учесть их оба? Для этого есть понятие неточного соответствия.
Мы можем производить поиск и подсчет значений, указывая не всё содержимое ячейки, а только её часть. Таким образом мы можем расширить границы поиска, применив знаки подстановки “?”, “*”.
Символ “?” позволяет заменить собой один любой символ.
Символ ”*” позволяет заменить собой не один, а любое количество символов (в том числе ноль).
Эти знаки можно применить в нашем случае двумя способами. Либо прямо вписать их в таблицу –
=СУММЕСЛИ(C2:C21;I2;E2:Е21) , где в E2 записано *[слово]*
либо
=СУММЕСЛИ(C2:C21;»*»&I2&»*»;E2:E21)
где * вставлены прямо в выражение и «склеены» с нужным текстом.
Давайте потренируемся:
- “*черный*” — мы ищем фразу, в которой встречается это выражение, а до него и после него – любые буквы, знаки и числа. В нашем случае этому соответствуют “Черный шоколад” и “Супер Черный шоколад”.
- “Д?” — необходимо слово из 2 букв, первая из которых “Д”, а вторая – любая. В нашем случае подойдет “Да”.
- “???” — найдем слово из любых 3 букв
=СУММЕСЛИ(F2:F21;”???”;E2:E21)
Этому требованию соответствует “Нет”.
- “???????*” — текст из любых 7 и более букв.
=СУММЕСЛИ(B2:B21;“???????*”;E8:E28)
Подойдет “Зеленый”, “Оранжевый”, “Серебряный”, “Голубой”, “Коричневый”, “Золотой”, “Розовый”.
- “З*” — мы выбираем фразу, первая буква которой “З”, а далее – любые буквы, знаки и числа. Это “Золотой” и “Зеленый”.
- “Черный*” — подходит фраза, которая начинаются именно с этого слова, а далее – любые буквы, знаки и числа. Подходит “Черный шоколад”.
Примечание. Если вам необходимо в качестве задания для поиска применять текст, который содержит в себе * и ?, то используйте знак тильда (~), поставив его перед этими символами. Тогда * и ? будут считаться обычными символами, а не шаблоном:
=СУММЕСЛИ(B2:B21;“*~?*”;E8:E28)
Важное замечание. Если в вашем тексте для поиска встречается несколько знаков * и ?, то тильду (~) нужно поставить перед каждым из них. К примеру, если мы будем искать текст, состоящий из трех звездочек, то формулу ЕСЛИ СУММ можно записать так:
=СУММЕСЛИ(B2:B21;“~*~*~*”;E8:E28)
А если текст просто содержит в себе 3 звездочки, то можно наше выражение переписать так:
=СУММЕСЛИ(B2:B21;“*~*~*~**”;E8:E28)
Точная дата либо диапазон дат.
Если нам нужно найти сумму чисел, соответствующих определённой дате, то проще всего в качестве критерия указать саму эту дату.
Примечание. При этом не забывайте, что формат указанной вами даты должен соответствовать региональным настройкам вашей таблицы!
Обратите внимание, что мы также можем здесь вписать ее прямо в формулу, а можем использовать ссылку.
Рассчитываем итог продаж за сегодняшний день – 04.02.2020г.
=СУММЕСЛИ(A2:A21;I1;E2:E21)
или же
=СУММЕСЛИ(A2:A21;СЕГОДНЯ();E2:E21)
Рассчитаем за вчерашний день.
=СУММЕСЛИ(A2:A21;СЕГОДНЯ()-1;E2:E21)
СЕГОДНЯ()-1 как раз и будет «вчера».
Складываем за даты, которые предшествовали 1 февраля.
=СУММЕСЛИ(A2:A21;»<«&»01.02.2020»;E2:E21)
После 1 февраля включительно:
=СУММЕСЛИ(A2:A21;»>=»&»01.02.2020″;E2:E21)
А если нас интересует временной интервал «от-до»?
Мы можем рассчитать итоги за определённый период времени. Для этого применим маленькую хитрость: разность функций СУММЕСЛИ. Предположим, нам нужна выручка с 1 по 4 февраля включительно. Из продаж после 1 февраля вычитаем все, что реализовано после 4 февраля.
=СУММЕСЛИ(A2:A21;»>=»&»01.02.2020″;E2:E21) — СУММЕСЛИ(A2:A21;»>=»&»04.02.2020″;E2:E21)
Сумма значений, соответствующих пустым либо непустым ячейкам
Случается, что в качестве условия суммирования нужно использовать все непустые клетки, в которых есть хотя бы одна буква, цифра или символ.
Рассмотрим ещё один вариант использования формулы СУММ ЕСЛИ в таблице Excel, где нам необходимо подсчитать заказы, в которых нет отметки о выполнении, а также сколько было вообще обработанных заказов.
Если критерий указать просто “*”, то мы учитываем для подсчета непустые ячейки, в которых имеется хотя бы одна буква или символ (кроме пустых).
=СУММЕСЛИ(F2:F21;»*»;E2:E21)
Точно такой же результат даёт использование вместо звездочки пары знаков «больше» и «меньше» — <>.
=СУММЕСЛИ(F2:F21;»<>»;E2:E21)
Теперь рассмотрим, как можно находить сумму, соответствующую пустым ячейкам.
Для того, чтобы найти пустые, в которых нет ни букв, ни цифр, в качестве критерия поставьте парные одинарные кавычки ‘’, если значение критерия указано в ячейке, а формула ссылается на неё.
Если же указать на отбор только пустых ячеек в самой формуле СУММ ЕСЛИ, то впишите двойные кавычки.
=СУММЕСЛИ(F2:F21;«»;E2:E21)
Сумма по нескольким условиям.
Функция СУММЕСЛИ может работать только с одним условием, как мы это делали ранее. Но очень часто случается, что нужно найти совокупность данных, удовлетворяющих сразу нескольким требованиям. Сделать это можно как при помощи некоторых хитростей, так и с использованием других функций. Рассмотрим все по порядку.
Вновь вернемся к нашему случаю с заказами. Рассмотрим два условия и посчитаем, сколько всего сделано заказов черного и молочного шоколада.
1. СУММЕСЛИ + СУММЕСЛИ
Все просто:
=СУММЕСЛИ($C$2:$C$21;»*»&H3&»*»;$E$2:$E$21)+СУММЕСЛИ($C$2:$C$21;»*»&H4&»*»;$E$2:$E$21)
Находим сумму заказов по каждому виду товара, а затем просто их складываем. Думаю, с этим вы уже научились работать :).
Это самое простое решение, но не самое универсальное и далеко не единственное.
2. СУММ и СУММЕСЛИ с аргументами массива.
Вышеупомянутое решение очень простое и может выполнить работу быстро, когда критериев немного. Но если вы захотите работать с несколькими, то она станет просто огромной. В этом случае лучшим подходом является использование в качестве аргумента массива критериев. Давайте рассмотрим этот подход.
Вы можете начать с перечисления всех ваших условий, разделенных запятыми, а затем заключить итоговый список, разделенный точкой с запятой, в {фигурные скобки}, который технически называется массивом.
Если вы хотите найти покупки этих двух товаров, то ваши критерии в виде массива будут выглядеть так:
СУММЕСЛИ($C$2:$C$21;{«*черный*»;»*молочный*»};$E$2:$E$21)
Поскольку здесь использован массив критериев, то результатом вычислений также будет массив, состоящий из двух значений.
А теперь воспользуемся функцией СУММ, которая умеет работать с массивами данных, складывая их содержимое.
=СУММ(СУММЕСЛИ($C$2:$C$21;{«*черный*»;»*молочный*»};$E$2:$E$21))
Важно, что результаты вычислений в первом и втором случае совпадают.
3. СУММПРОИЗВ и СУММЕСЛИ.
А если вы предпочитаете перечислять критерии в какой-то специально отведенной для этого части таблицы? Можете использовать СУММЕСЛИ в сочетании с функцией СУММПРОИЗВ, которая умножает компоненты в заданных массивах и возвращает сумму этих произведений.
Вот как это будет выглядеть:
=СУММПРОИЗВ(СУММЕСЛИ(C2:C21;H3:H4;E2:E21))
в H3 и H4 мы запишем критерии отбора.
Но, конечно, ничто не мешает вам перечислить значения в виде массива критериев:
=СУММПРОИЗВ(СУММЕСЛИ(C2:C21;{«*черный*»;»*молочный*»};E2:E21))
Результат, возвращаемый в обоих случаях, будет идентичен тому, что вы наблюдаете на скриншоте.
Важное замечание! Обратите внимание, что все перечисленные выше три способа производят расчет по логическому ИЛИ. То есть, нам нужны продажи шоколада, который будет или черным, или молочным.
Почему СУММЕСЛИ у меня не работает?
Этому может быть несколько причин. Иногда ваше выражение не возвращает того, что вы ожидаете, только потому, что тип данных в ячейке или в каком-либо аргументе не подходит для нее. Итак, вот что нужно проверить.
1. «Диапазон данных» и «диапазон суммирования» должны быть указаны ссылками, а не в виде массива.
Первый и третий атрибуты функции всегда должны быть ссылкой на область таблицы, например A1: A10. Если вы попытаетесь передать что-нибудь еще, например, массив {1,2,3}, Excel выдаст сообщение об ошибке.
Правильно: =СУММЕСЛИ(A1:A3, «цвет», C1:C3)
Неверно : =СУММЕСЛИ({1,2,3}, «цвет», C1:C3)
2. Ошибка при суммировании значений из других листов или рабочих книг.
Как и любая другая функция Excel, СУММЕСЛИ может ссылаться на другие листы и рабочие книги, если они в данный момент открыты.
Найдем сумму значений в F2: F9 на листе 1 книги 1, если соответствующие данные записаны в столбце A, и если среди них содержатся «яблоки»:
=СУММЕСЛИ([Книга1.xlsx]Лист1!$A$2:$A$9,»яблоки»,[Книга1.xlsx]Лист1!$F$2:$F$9)
Однако это перестанет работать, как только Книга1 будет закрыта. Это происходит потому, что области, на которые ссылаются формулы в закрытых книгах, преобразуются в массивы и хранятся в таком виде в текущей книге. А поскольку в аргументах 1 и 3 массивы не допускаются, то формула выдает ошибку #ЗНАЧ!.
3. Чтобы избежать проблем, убедитесь, что диапазоны данных и поиска имеют одинаковый размер.
Как отмечалось в начале этого руководства, в современных версиях Microsoft Excel они не обязательно должны иметь одинаковый размер. Но вот в Excel 2000 и более ранних версиях это может вызвать проблемы. Однако, даже в самых последних версиях Excel сложные выражения, в которых диапазон сложения имеет меньше строк и/или столбцов, чем диапазон поиска, являются капризными. Вот почему рекомендуется всегда иметь их одинакового размера и формы.
Примеры расчета суммы:
Материалы
Работа с ненормализированными данными
- Подробности
- Создано 22 Июль 2014
Содержание |
---|
СУММЕСЛИ, СУММЕСЛИМН |
Дополнительные вычисления |
СУММПРОИЗВ |
Формулы обработки массивов |
Вычисляемая адресация |
В приложении к статье файл с простой задачей суммирования диапазона по различным условиям.
Как ни странно, подобные задачи вызывают серьезные трудности даже у опытных пользователей Excel, работающих с большими объемами данных. Попробуйте решить самостоятельно (лист ЗАДАЧА) – вычислите значения в желтых ячейках, формулы должны копироваться. Подразумевается также, что даты в исходной таблице и в условиях могут быть любыми.
Если сходу не получилось, то давайте разбираться. Некоторые пользователи указывают на «неправильность» расположения данных в таблице. Действительно, в примере данные не нормализированы – т.е. не в приведены единую таблицу со списками полей, где даты также бы располагались в столбцах, а не в заголовках, как в примере. Но на самом деле это типичный вид рабочей таблицы Excel. Обсуждать неправильность структуры данных в данной статье не будем, хотя, это, пожалуй, главная причина проблем с анализом информации. Но и говорить о том, что задача не имеет решения в Excel нельзя.
СУММЕСЛИ, СУММЕСЛИМН
Итак, рассмотрим первый вариант решения задачи, тот, на котором спотыкается большинство пользователей – лист ОШИБКИ.
Первое, что приходит в голову подавляющему большинству – это использовать формулу SUMIF для первой задачи и SUMIFS для остальных:
=SUMIF($B$3:$B$9;$A12;$C$3:$I$9) =SUMIFS($C$3:$I$9;$B$3:$B$9;$A18;$C$2:$I$2;$B$17) =SUMIFS($C$3:$I$9;$B$3:$B$9;$A25;$C$2:$I$2;">="&$B$23;$C$2:$I$2;"<="&$B$24)
Диапазоны и типы ссылок указаны верно. Специальные выражения с амперсандом («&») используется для неточных сравнений. При этом первая формула выдает неправильный результат, остальные возвращают ошибку #VALUE. Предлагаю, разобраться для начала, почему так происходит.
Что делать с неверным результатом SUMIF? Некоторые пользователи готовы сходу обвинить функцию в неверной работе (и взять в руки калькулятор). Но функция работает именно так как и должна – просматривает массив (диапазон) условий и при выполнении условия суммирует соответствующее число из массива значений. Если количество значений (ячеек) в массиве условий меньше, чем в массиве значений, то функция не проверяет и не суммирует оставшиеся числа. Так и происходит в примере: в диапазоне условий 7 значений, в диапазоне чисел -7*7 = 49. Т.е. функция работает корректно и выдает в качестве результата сумму только по первой дате, остальные даты просто не просматриваются. Кстати, в качестве последнего параметра SUMIF можно указать не диапазон, а ссылку на одну ячейку (верхний левый угол) – результат будет тот же.
SUMIF($B$3:$B$9;$A12;$C$3)
Функция СУММЕСЛИМН не работает, так как она более требовательна к размерам диапазонов – просто выдает ошибку, если количество ячеек в массивах значений и условий не совпадает. Причем важно не только количество ячеек, но и их расположение – по строкам или столбцам.
Можно сделать вывод, что простое использование SUMIFи SUMIFSв данном случае не подходит.
Дополнительные вычисления
В условиях задачи нет запрета на использование дополнительных диапазонов для служебных вычислений. Главное, чтобы результат попал в желтые ячейки и формулы были бы копируемыми. Воспользовавшись этой подсказкой большинство опытных пользователей без труда решают задачу с использованием дополнительных столбцов – лист ДОП.ВЫЧ.
Предварительно вычисляются суммы по периодическим условиям, затем этот результат еще раз обрабатывается через суммирование по округам. Т.е. применяется последовательно 2 функции суммирования с разными условиями, но с одинаковыми размерами диапазонов.
Это очевидный и, в принципе, верный подход к решению подобных задач. Использование дополнительных вычислений – это один из главных методов обработки сложных информационных структур.
СУММПРОИЗВ
Но можно ли обойтись без служебных столбцов? Во-первых, просто ради интереса. Во-вторых, бывают случаи, особенно в сложных экономических моделях, когда наличие дополнительных вычислений не приветствуется. Это может быть связано с алгоритмами вставки новых строк, столбцов и т.п.
Самым простым способом является не совсем стандартное использование функции SUMPRODUCT. Функция, предназначенная для суммы произведений чисел, может использоваться также для работы с условиями (см. лист СУММПРОИЗВ):
Формулы выдают правильный результат:
=SUMPRODUCT(($B$3:$B$9=$A12)*$C$3:$I$9) =SUMPRODUCT(($B$3:$B$9=$A18)*($C$2:$I$2=$B$17)*$C$3:$I$9) =SUMPRODUCT(($B$3:$B$9=$A25)*($C$2:$I$2>=$B$23)*($C$2:$I$2<=$B$24)*$C$3:$I$9)
В качестве аргумента функции используется произведение векторов на массив, при этом в векторах записаны логически выражения, при выполнении возвращающие 1 (ИСТИНА) или 0 (ЛОЖЬ). Т.е. каждый элемент результирующего массива умножается на 0 или на 1 в зависимости от соответствующего условия вектора. Функция SUMPRODUCT в данном случае работает с массивами данных (см.далее), но в отличие от простых функций агрегирования (SUM, MIN, MAX) не требует ввода через Ctrl+Shift+Enter.
Можно сказать, что как раз этот метод работы функции SUMPRODUCT, гораздо полезнее на практике, чем вычисление суммы произведений.
Формулы обработки массивов
Если вам удалось понять принцип работы СУММПРОИЗВ, то альтернативный метод решения задачи с применением функций обработки массивов не должен вызвать больших проблем, даже, если вы никогда не сталкивались с подобной записью (см. лист МАССИВЫ).
Формулы также выдают правильный результат, но в записи видны фигурные скобки – такие формулы вводятся через нажатие Ctrl+Shift+Enter:
{=SUM(IF($B$3:$B$9=$A12;$C$3:$I$9))} {=SUM(IF($B$3:$B$9=$A18;ЕСЛИ($C$2:$I$2=$B$17;$C$3:$I$9)))} {=SUM(IF($B$3:$B$9=$A25;ЕСЛИ($C$2:$I$2>=$B$23;ЕСЛИ($C$2:$I$2<=$B$24;$C$3:$I$9))))}
Принцип работы функций обработки массивов кратко можно изложить следующим образом
- Последовательно просматриваются ячейки в диапазоне строк и столбцов, при этом выбираются соответствующие им значения в прямоугольных диапазонах.
- Каждый шаг образует формулу, которая вычисляется отдельно.
- В конце результат каждого вычисления агрегируется в одно значение (чаще всего используется функция SUM).
По-моему, запись формулы с обработкой массивов, в которой явно заданы условия (функция ЕСЛИ), более наглядна, чем использование скрытых условий в SUMPRODUCT. Хотя принцип работы тот же. Сказать однозначно, что будет работать быстрее на больших объемах данных нельзя – все зависит от расположения значений в массиве данных. Главное для массивов – не забывать про Ctrl+Shift+Enter, просто вписанные вручную фигурные скобки, как пытаются делать некоторые, просто сделают из формулы текстовую строку.
Вычисляемая адресация
Использование функций вычисляемой адресации диапазонов – это одно из мощнейших средств оптимизации работы с ненормализированными структурами данных. Вычисляемая адресация позволяет создать копируемую формулу при обработке многострочных блоков информации, сборе данные из столбцов в строки и наоборот, поиске информацию в диапазонах с заранее неизвестной размерностью. Принцип копируемости формулы в свою очередь существенно сокращает время на обработку информации, снижая при этом риск ошибки.
Пример использования формул с функциями вычисляемой адресацией представлен на листе ВЫЧ.АДРЕС.
В чистом виде использование вычисляемой адресации позволило решить только вторую часть задачи – собрать данные на определенную дату:
=SUMIF($B$3:$B$9;$A18;OFFSET($B$2;1;MATCH($B$17;$C$2:$I$2;0);ROWS($B$3:$B$9);1))
Смысл формулы в том, что столбец для суммирования вычисляется через поиск соответствующего заголовка.
Аналогичная логика заложена и в третьей части задачи:
{=SUM(SUMIF($B$3:$B$9;$A25;OFFSET($B$2;1;IF($C$2:$I$2>=$B$23;IF($C$2:$I$2<=$B$24;COLUMN($C$2:$I$2)-COLUMN($B$2)));ROWS($B$3:$B$9);1)))}
Функция СУММЕСЛИ собирает данные по строкам, а номера столбцов вычисляются сложным образом через вложенные условия IF. Выбранные данные суммируются. Формула требует ввод через Ctrl+Shift+Enter, так как в ней использован метод агрегации (SUM) нескольких найденных значений.
Вариант решения первой части задачи – простого итога по округам – совсем не стандартный:
=SUM(SUMIF($B$3:$B$9;$A12;OFFSET($B$2;1;{1:2:3:4:5:6:7};ROWS($B$3:$B$9);1)))
В формуле использован массив констант {1:2:3:4:5:6:7}, обеспечивающий просмотр семи столбцов. По большому счету это та же обработка массива без сложного поиска, как во второй части задачи – последовательно обрабатываются столбцы, затем происходит общее суммирование. Так как массив состоит из констант, то формула не требует обязательного ввода через Ctrl+Shift+Enter.
Не стоит злоупотреблять вычисляемой адресацией диапазонов там, где это не требуется. На больших объемах данных этот метод будет работать медленнее всех, описанных выше.
Смотри также
» Простые формулы
В приложенном файле несколько примеров использования простых функций Excel нестандартным способом.
» Обработка больших объемов данных. Часть 1. Формулы
Одним из самых популярных методов использования электронных таблиц является обработка данных, полученных из учетных систем….
» Суммирование несвязанных диапазонов
При обработке больших таблиц иногда возникает потребность получить итоговые значения на основе данных, расположенных в диапазонах…
СУММЕСЛИ – это математическая функция, которая суммирует числовые значения в указанном диапазоне данных, сопоставляя их с заданным условием.
Практическая работа функции СУММЕСЛИ в Excel
Как работает математическая и в то же время логическая функция СУММЕСЛИ? Ее синтаксис выглядит следующим образом:
Третий аргумент «Диапазон_суммирования» является необязательным. Если он не будет указан, формула сосчитает ячейки, указанные в первом аргументе. Теперь на примере рассмотрим принцип работы СУММЕСЛИ. У нас есть таблица с типами продукции разных компаний и их выручка. Первой задачей будет посчитать выручку компании Sanofi. Для этого нам нужно в качестве первого аргумента указать диапазон А3:А11, вторым аргументом указать условие – компанию «Sanofi». Можно прописать текстовое значение в формуле, а можно указать ссылку на ячейку с прописанным условием. Затем применить третий аргумент, поскольку числовые значения находятся в столбце «Выручка» — диапазон «С3:С11»:
В результате формула суммировала те числовые значения, которые соответствуют компании Sanofi. Следующим заданием будет узнать сумму выручки всех компаний, кроме Sanofi. В этом нам поможет оператор «не равно». Для реализации такого запроса нужно к аргументу 2 применить оператор «<>», амперсанд “&”, (для объединения) и ссылку на ячейку с условием для исключения:
Если использовать текстовое значение, амперсанд не нужен, тогда необходимо и оператор, и текст взять в кавычки:
Использование подстановочных знаков в формуле СУММЕСЛИ
СУММЕСЛИ так же можно использовать с подстановочными знаками, такими как звездочка и знак вопроса. Например, компании у нас разделены по направлению продаж – «Europe» и «Asia». Нам нужно просуммировать выручку из продаж в Европе (Europe). Для этого в аргументе «Условие» указываем нужный нам текст, с обеих сторон расставляем звездочки (подстановочный знак), затем оборачиваем в кавычки, иначе формула не сработает:
СУММЕСЛИ просуммировала только ту выручку, которую получили компании в Европе, при этом в расчет брались все компании. То есть мы указали, что нам неважно, какой текст находится еще в ячейке (в начале, середине или конце), главное, чтобы было совпадение по слову «Europe». Если необходимо ссылаться на ячейку, а не использовать текстовое значение, тогда формула будет выглядеть следующим образом:
С обеих сторон прописываем амперсанды, соединяя ячейку с подстановочными знаками. Если нужно сосчитать выручку тех компаний, в которых слово «Europe», находится в конце, или в начале, нужно изменить положение подстановочного знака на соответствующее:
Первая формула будет работать с теми компаниями, названия которых начинаются на слово «Europe» (желтый цвет). Вторая формула будет работать с теми компаниями, названия которых кончаются на слово «Europe» (синий цвет). Можно также, используя подстановочный знак «?» указать условие «слово из 6 букв». В формуле количество знаков вопроса равно количеству символов в слове:
СУММЕСЛИ прошлась по столбцу А, нашла те компании, которые соответствуют условию «??????», то есть 6 букв в тексте.
Функция СУММЕСЛИ с несколькими условиями
Следующим заданием у нас будет найти выручку от реализации мазей и порошковых препаратов. Теперь у нас сразу несколько условий. Усвоив предыдущие уроки, мы можем выполнить это задание, используя отдельно две формулы, затем сложить их между собой:
Для того чтобы формула подтянула не только мази, но и мази в тюбиках, мы использовали подстановочный символ. То же самое сделали и с порошками. Затем сложили две формулы и получили желаемый результат. Однако, этот самый простой способ работает, когда критериев немного. Ведь если критерии будут добавляться, постоянно строить новые формулы – очень долго. В этом случае нам поможет массив критериев. В качестве второго аргумента мы сразу укажем «мази*» и «порошок*» с использованием фигурных скобок. Затем построенную формулу нам нужно вложить в функцию СУММ, чтобы она посчитала содержимое нашего массива данных:
Практическое использование формулы СУММЕСЛИ и СУММПРОИЗВ
В следующем примере отведем для критериев отдельную таблицу. Например, мы хотим производить поиск по типу «Таблетки» и «Порошок»:
Здесь мы можем воспользоваться дополнительно функцией СУММПРОИЗВ, которая умножит элементы в указанных массивах и возвратит сумму этих произведений. В качестве второго аргумента для функции СУММЕСЛИ указываем диапазон критериев Е121:Е122. Затем вкладываем всю формулу в функцию СУММПРОИЗВ:
Благодаря дополнительной таблице наша формула динамическая, можем, например, изменить второй критерий на «Мази в тюбиках» и формула пересчитает наш результат:
Пример формулы СУММЕСЛИ и ВПР
В следующем примере используем функцию СУММЕСЛИ в комбинации с функцией ВПР. Допустим, у нас есть две таблицы: первая содержит информацию о названии товара и соответствующего кода, вторая содержит информацию о выручке по коду товара:
Нам необходимо найти объем выручки по конкретному товару. В этом примере у нас сложность в том, что вторая таблица содержит сразу несколько позиций выручки по одному коду и добавить столбец с именами ко второй табличке не является возможным. Пусть результатом нашей работы будет объем выручки по товару «Порошок». Определим первый аргумент для функции СУММЕСЛИ. Поскольку мы ищем по коду товара, указываем диапазон из второй таблицы «D130:D142». Вторым аргументом у нас будет функция ВПР, которая задаст условие. И третьим аргументом будет диапазон, по котором происходит суммирование – Е130:Е142:
Теперь разберем формулу ВПР. Ее синтаксис выглядит следующим образом: (искомое значение; диапазон поиска; номер столбца в диапазоне с возвращаемым значением; возврат приблизительного или точного совпадения). Первым аргументом будет ячейка Е147, в которой содержится значение продукта. Вторым аргументом будет первая таблица А130:В137. Третьим аргументом будет номер столбца, по которому будет возвращаться значение. Также укажем четвертый аргумент «ЛОЖЬ» для точного совпадения:
Теперь складываем наши формулы в одну и получаем сумму выручки по продукту «Порошок»:
Скачать практические примеры функции СУММЕСЛИ в Excel
Функция ВПР извлекла из таблицы значение d-02, которое соответствовало искомому «Порошку». Затем СУММЕСЛИ суммировала все значения из столбца «Выручка», которые соответствовали коду «d-02», поскольку это значение было условием для суммирования.