Чем заменить суммесли в excel
Суммировать в программе Excel умеет, наверное, каждый. Но с усовершенствованной версией команды СУММ, которая называется СУММЕСЛИ, существенно расширяются возможности данной операции.
По названию команды можно понять, что она не просто считает сумму, но еще и подчиняется каким-либо логическим условиям.
СУММЕСЛИ и ее синтаксис
Функция СУММЕСЛИ позволяет суммировать ячейки, которые удовлетворяют определенному критерию (заданному условию). Аргументы команды следующие:
- Диапазон – ячейки, которые следует оценить на основании критерия (заданного условия).
- Критерий – определяет, какие ячейки из диапазона будут выбраны (записывается в кавычках).
- Диапазон суммирования – фактические ячейки, которые необходимо просуммировать, если они удовлетворяют критерию.
Получается, что у функции всего 3 аргумента. Но иногда последний может быть исключен, и тогда команда будет работать только по диапазону и критерию.
Как работает функция СУММЕСЛИ в Excel?
Рассмотрим простейший пример, который наглядно продемонстрирует, как использовать функцию СУММЕСЛИ и насколько удобной она может оказаться при решении определенных задач.
Имеем таблицу, в которой указаны фамилии сотрудников, их пол и зарплата, начисленная за январь-месяц. Если нам нужно просто посчитать общее количество денег, которые требуется выдать работникам, мы используем функцию СУММ, указав диапазоном все заработные платы.
Но как быть, если нам нужно быстро посчитать заработные платы только продавцов? В дело вступает использование функции СУММЕСЛИ.
- Диапазоном в данном случае будет являться список всех должностей сотрудников, потому что нам нужно будет определить сумму заработных плат. Поэтому проставляем E2:E14.
- Критерий выбора в нашем случае – продавец. Заключаем слово в кавычки и ставим вторым аргументом.
- Диапазон суммирования – это заработные платы, потому что нам нужно узнать сумму зарплат всех продавцов. Поэтому F2:F14.
Получилось 92900. Т.е. функция автоматически проработала список должностей, выбрала из них только продавцов и просуммировала их зарплаты.
Аналогично можно подсчитать зарплаты всех менеджеров, продавцов-кассиров и охранников. Когда табличка небольшая, кажется, что все можно сосчитать и вручную, но при работе со списками, в которых по несколько сотен позиций, целесообразно использовать СУММЕСЛИ.
Функция СУММЕСЛИ в Excel с несколькими условиями
Если к стандартной записи команды СУММЕСЛИ в конце добавляются еще две буквы – МН (СУММЕСЛИМН), значит, подразумевается функция с несколькими условиями. Она применяется в случае, когда нужно задать не один критерий.
Синтаксис с использованием функции по нескольким критериям
Аргументов у СУММЕСЛИМН может быть сколько угодно, но минимум – это 5.
- Диапазон суммирования. Если в СУММЕСЛИ он был в конце, то здесь он стоит на первом месте. Он также означает ячейки, которые необходимо просуммировать.
- Диапазон условия 1 – ячейки, которые нужно оценить на основании первого критерия.
- Условие 1 – определяет ячейки, которые функция выделит из первого диапазона условия.
- Диапазон условия 2 – ячейки, которые следует оценить на основании второго критерия.
- Условие 2 – определяет ячейки, которые функция выделит из второго диапазона условия.
И так далее. В зависимости от количества критериев, число аргументов может увеличиваться в арифметической прогрессии с шагом 2. Т.е. 5, 7, 9.
Пример использования
Предположим, нам нужно подсчитать сумму заработных плат за январь всех продавцов-женщин. У нас есть два условия. Сотрудник должен быть:
Значит, будем применять команду СУММЕСЛИМН.
- диапазон суммирования – ячейки с зарплатой;
- диапазон условия 1 – ячейки с указанием должности сотрудника;
- условия 1 – продавец;
- диапазон условия 2 – ячейки с указанием пола сотрудника;
- условие 2 – женский (ж).
Итог: все продавцы-женщины в январе получили в сумме 51100 рублей.
СУММЕСЛИ в Excel с динамическим условием
Функции СУММЕСЛИ и СУММЕСЛИМН хороши тем, что они автоматически подстраиваются под изменение условий. Т.е. мы можем изменить данные в ячейках, и суммы будут изменяться вместе с ними. Например, при подсчете заработных плат оказалось, что мы забыли учесть одну сотрудницу, которая работает продавцом. Мы можем добавить еще одну строчку через правую кнопку мыши и команду ВСТАВИТЬ.
У нас появилась дополнительная строчка. Сразу обращаем внимание, что диапазон условий и суммирования автоматически расширился до 15 строки.
Копируем данные сотрудника и вставляем их в общий перечень. Суммы в итоговых ячейках изменились. Функции среагировали на появление в диапазоне еще одного продавца-женщины.
Аналогично можно не только добавлять, но и удалять какие-либо строки (например, при увольнении сотрудника), изменять значения (заменить «январь» на «февраль» и подставить новые заработные платы) и т.п.
Имеем таблицу по продажам, например, следующего вида:
Задача: просуммировать все заказы, которые менеджер Григорьев реализовал для магазина "Копейка".
Способ 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) , которая тоже способна решить нашу задачу. Нюанс состоит в том, что для работы этой функции необходимо создать на листе специальный диапазон критериев - ячейки, содержащие условия отбора - и указать затем этот диапазон функции как аргумент:
Думаю многие пользователи Excel знакомы с функцией СУММЕСЛИМН(). Эта функция суммирует значения указанного столбца по определённым условиям. К примеру, можно использовать СУММЕСЛИМН() для суммирования значений столбца СуммаПродаж, но только тех строк в которых значения столбца Год равны 2012.
Так вот, в DAX существует более усовершенствованный и более мощный аналог данной функции, который называется CALCULATE().
Преимущества CALCULATE() перед СУММЕСЛИМН() заключаются в следующем:
- Более понятный синтаксис;
- Он не ограничивается лишь подсчётом суммы по условию. К примеру в Excel, СУММЕСЛИМН() используется для подсчёта суммы по условию, СЧЕТЕСЛИМН() для подсчёта количества по условию а СРЗНАЧЕСЛИМН() для подсчёта среднего значения. Однако в Excel нету функций МАКСЕСЛИМН(), МИНЕСЛИМН() или же СТДОТКЛЕСЛИМН(). В этом смысле CALCULATE() безграничен. Он позволяет использовать любую функцию агрегирования (либо комплексную формулу) и рассчитывать её по указанным условиям;
- Он используется для создания мер а СУММЕСЛИМН() не может быть использован в сводных таблицах.
- Мы использовали имя другой меры в качестве аргумента для CALCULATE(). То есть в качестве логического выражения в CALCULATE() может быть использована как формула так и уже существующая мера;
- В первом фильтр-аргументе 2002 не в кавычках. Это потому, что формат столбца числовой. Если бы формат столбца был текстовым, тогда фильтр-аргумент был бы равен ="2002";
- В этой мере был использован лишь один фильтр-аргумент, но при необходимости можно добавить ещё столько фильтр-аргументов, сколько захотим.
- Фильтр-аргументы функции CALCULATE() действуют в той фазе вычисления меры в которой применяются фильтры. Эти аргументы изменяют фильтр-контекст сводной таблицы;
- Если фильтр-аргументы применяются к столбцу который уже находится в сводной таблице, то они изменяют контекст сводной для этого столбца. Именно поэтому в первом приведённом примере, функция CALCULATE() отображала одинаковое значение для всех строк столбца Год;
- Если фильтр-аргумент применяется к столбцу, не находящемуся в сводной таблице, то он дополняет существующий фильтр-контекст сводной. Во втором примере, у нас имелась сводная таблица в которой указывалась разбивка продаж по номерам месяца. В этом примере фильтр-аргумент меры [Продажи_2002] дополнил существующий фильтр-контекст сводной и отображал продажи по каждому месяцу в 2002 году.
- обычные продажи;
- рекламные продажи;
- возвраты
Синтаксис функции CALCULATE()
CALCULATE(,,. )
пример: CALCULATE(SUM(t_sales[Маржа]), t_sales[Год]=2001)
пример: CALCULATE([ПродажиЗаДень], t_sales[Год]=2002, t_sales[КодПродукта]=313)
CALCULATE() в действии - несколько быстрых примеров
Начнём с простой сводной таблицы. Переместим "Год" в поле "Строки", а [ИтогоПродаж] в поле "Значения".
Теперь создадим меру, которая высчитывает сумму продаж за 2002 год:
Как видите, значения [Продажи_2002] и [ИтогоПродаж] в строке 2002 совпадают. Однако уверен что Вы недоумеваете почему в строках 2001, 2003, 2004 вместо нулей также отображается сумма продаж за 2002 год. Объясню чуть позже. А пока давайте заменим в поле "Строки" сводной таблицы "Год" на "НомерМесяца".
Теперь, как и обещал объясню ситуацию с первым примером.
При использовании CALCULATE() нужно учитывать три главные особенности этой функции:
Два полезных примера использования функции CALCULATE()
В нашей таблице продаж, в отдельном столбце "ТипТранзакции", указаны три типа транзакций, характерных для розничного бизнеса:
[ОбычныеПродажи]=CALCULATE([ИтогоПродаж],t_sales[ТипТранзакции]=1)
[РекламныеПродажи]=CALCULATE([ИтогоПродаж],t_sales[ТипТранзакции]=3)
[Возвраты]=CALCULATE([ИтогоПродаж],t_sales[ТипТранзакции]=2)*-1
*Так как Возвраты уменьшают сумму продаж, мы делаем их значение негативным чтобы они визуально отличались от обычных продаж.
И с помощью этих мер мы можем вычислить сумму чистых продаж:
Или же узнать какой процент общих продаж составляют РекламныеПродажи:
Пример №2: рост с начала деятельности
Создадим базовую меру (мера не ссылающаяся на другие меры) рассчитывающую количество активных клиентов:
А теперь создадим меру рассчитывающую количество активных клиентов в самый первый год начала продаж, т.е. в 2001:
Теперь, на основе этих двух мер мы можем рассчитать процент прироста клиентов по отношению к первому году начала продаж:
Комбинирование фильтр-аргументов
Как Вы уже наверное поняли, функция CALCULATE() может принимать неограниченное количество фильтр-аргументов. Однако, по умолчанию все они применяются по принципу "И тот фильтр-аргумент И этот". Если же нужно, чтобы фильтр-аргументы применялись по принципу "ИЛИ" нужно использовать оператор "||".
И помните, при использовании оператора "||" возможно сравнивать лишь значения одного столбца - в нашем случае ТипТранзакции. Нельзя использовать оператор "||" для сравнения двух разных столбцов.
В предыдущей статье мы рассмотрели функцию = СУММЕСЛИ () , которая справляется с задачей, если вам необходимо произвести сложение значений соответствующих определенному одному условию. Что делать, если у вас несколько условий? Как получить общий объем продаж какого-то продукта, реализованного продавцом в определенный месяц? И вот здесь на помощь приходит функция =СУММЕСЛИМН()
В конце статьи рассмотрим один очень полезный прием использования функции =СУММЕСЛИМН(), который я уверен вам очень пригодится
Функция =СУММЕСЛИМН() расширяет возможности функции =СУММЕСЛИ() , позволяя указать от 2 до 127 критериев, а не только один.
И как обычно перед использованием функции давайте разберем ее состав и принцип работы.
=СУММЕСЛИМН() ищет определенные критерии в двух или более полях записи, и только если он находит соответствие для каждого указанного поля, данные для этой записи суммируются.
= СУММЕСЛИМН (диапазон суммирования; диапазон 1-го условия; критерий 1-го условия; диапазон 2-го условия; критерий 2-го условия; и т.д.)
Диапазон суммирования – непосредственно сам диапазон, в котором нам необходимо произвести суммирование данных на основании заданных условий;
Диапазон 1-го условия - диапазон ячеек, содержащий критерии, на основании которых нам необходимо произвести отбор ячеек для суммирования, отвечающие первому условию;
Критерий 1-го условия - непосредственно сам критерий 1-го условия. Он может быть в форме числа, выражения, ссылки на ячейку, текста или функции.
Диапазон 2-го условия - диапазон ячеек, содержащий критерии, на основании которых нам необходимо произвести отбор ячеек для суммирования, отвечающие второму условию;
Критерий 2-го условия - непосредственно сам критерий 2-го условия. Он может быть в форме числа, выражения, ссылки на ячейку, текста или функции.
В ажно. Если критерии текстовые, логические или дата вам необходимо заключить их в двойные кавычки. Например - "Картофель" или "01.01.2021" или ">01.01.2021"
Один из способов использования двух или несколько условий в функции СУММЕСЛИ основан на добавлении или вычитании результатов нескольких функций СУММЕСЛИ. Если два условия касаются одного и того же диапазона значений, данный метод является весьма эффективным. Если же диапазоны разные, то данный способ существенно усложняется, так как необходимо следить за тем, чтобы в итоговых расчетах не учитывать повторно те же самые значения.
Функция СУММЕСЛИ и несколько условий в одном диапазоне Excel
Допустим нам необходимо суммировать числовые значения в границах дат от 23-го и до 29-го июня включительно. Начальные и конечные даты введены в соответствующих ячейках дополнительной таблицы для составления запросов выборки из исходной таблицы. Ниже на рисунке изображены исходные значения и условия отбора значений для суммирования:
Описанная данная техника суммирования по нескольким условиям с помощью функции СУММЕСЛИ основана на вычитании. В данной формуле первая функция СУММЕСЛИ возвращает сумму значений, соответствующих датам раньше конечной даты в ячейке E3 или равной этой дате (в данном случаи =29-е Июня). Оператор «меньше» объединен символом амперсант (&) со ссылкой на ячейку E2 (начальной даты).
Когда формула содержала бы только первую функцию =СУММЕСЛИ(A2:A12;" < первую функция формулы." src="https://exceltable.com/formuly/images/formuly111-2.jpg" >
Но нам необходимо получить сумму чисел в границах между 25-ым и 29-ым числом Июня месяца включительно, а не между 20-ым и 29-ым. Для этого необходимо вычесть из первого итогового результата 5721,00 сумму чисел раньше даты 25-го Июня – 3 726,50.
Данного результата мы добиваемся с помощью повторного использования такой же функции СУММЕСЛИ, но с немного измененным вторым аргументом СУММЕСЛИ(A2:A12;"<"&E2;B2:B12).
Теперь проверим разницу вычислений двух частей формулы с помощью вычитания:
Суммирование числовых значений, соответствующих датам раньше конечной даты (29-го Июня и равной ей) с последующим вычитанием от данного результата суммы всех числовых значений, относящихся к датам раньше от начальной (25-го Июня) позволяет получить сумму всех чисел в границах соответствующим датам заданного периода в таблице составления запроса выборки.
Пример функции СУММЕСЛИМН с несколькими условиями в Excel
Если вы пользуетесь версией Excel 2010-го года или более новой, то для данного решения задачи лучше воспользоваться специальной функцией СУММЕСЛИМН для суммирования значений с несколькими условиями. Она вычислит такой же правильный результат, но выполнит его быстрее при меньших затратах системных ресурсов. Кроме того, новая функция более интуитивно понятная, чем выше описанная техника вычитания итоговых сумм. Формула функции СУММЕСЛИМН:
Пример функции СУММЕСЛИМН." src="https://exceltable.com/formuly/images/formuly111-5.jpg" >
=E2)*(B2:B12))' >
Как видно на рисунке, мы получили аналогичный результат вычисления. Как работает СУММПРОИЗВ в данной формуле детально описано в статье: Формулы суммирования по нескольким условиям в Excel.
Данные вычисления основаны на умножении логических значений и числовых в столбце B2:B12. Результаты вычислений в первых двух логических выражений возвращают логические значения ИСТИНА=1 и ЛОЖЬ=0. Если хоть один из множителей будет равен нулю, то и результат = 0. Например, как читает данная формула первую строку:
Если же оба логические выражения возвращают значение ИСТИНА, тогда текущая ячейка столбца B с показателем продаж умножается на единицы, а затем суммируются все найденные значения. Для наглядного примера сформируем таблицу как видит формула СУММПРОИЗВ текущую ситуацию:
Несмотря на то что функция СУММПРОИЗВ старая, не такая быстрая и удобная как СУММЕСЛИМН, она будет всегда поддерживаться новыми версиями Excel для возможности открытия файлов старых версий без вычислительных ошибок в формулах. Поэтому стоит разобраться с ее принципами работы.
Читайте также: