Содержание
- Назначение математической функции СУММ в Excel скачать пример
- Практическая работа с примерами функции СУММ в Excel
- Как использовать функцию СУММ с массивами
- Как рассчитать нарастающий итог с помощью функции СУММ
- Суммирование по выбранным критериям
- Как использовать функцию СУММ с другими функциями
- Проверка вводимых значений с помощью СУММ
- Подбор слагаемых для нужной суммы
- Способ 1. Надстройка Поиск решения (Solver)
- Способ 2. Макрос подбора
Назначение математической функции СУММ в Excel скачать пример
СУММ в Excel – это математическая функция, используется для суммирования числовых значений. Аргументами могут быть отдельные значения, ссылки на ячейки, диапазон или несколько отдельных диапазонов.
Практическая работа с примерами функции СУММ в Excel
Как работает функция СУММ? Схематически её синтаксис имеет следующий вид:
Рассмотрим самый простой пример работы функции СУММ. У нас есть список с прибылью по нескольким точкам продаж и первое задание – посчитать сумму прибыли по всем точкам. В ячейке Е10 пишем формулу. Для этого в качестве аргументов выбираем весь диапазон со значениями (С3:С8):
Суммировать можно так же и несколько диапазонов, например, нам нужна сумма диапазонов С3:С5 и С6:С8:
В ячейке F12 результат у нас получился тот же, что и в задании 1, значит, формула сработала правильно.
Как использовать функцию СУММ с массивами
Теперь рассмотрим, как ещё мы можем упростить себе выполнение задач с помощью СУММ. У нас есть форма с информацией о строительных материалах, их цене, количестве и стоимости доставки. Нам нужно посчитать полную сумму покупки товаров. Имея определённые знания в EXCEL пользователь может выполнить эту задачу следующим образом – в ячейке G17 написать формулу расчета «Цена*Количество+Доставка» и скопировать до последней позиции:
Затем в ячейке G22 написали функцию СУММ, выбрали весь диапазон G17:G21 и у нас готова общая стоимость покупки товаров с учетом цены за товар, количества и доставки:
Чтобы выполнить расчет покупки не прибегая к дополнительному столбцу, в котором мы считали стоимость по отдельному товару, используем функцию СУММ и формулу массива:
- в ячейке С24 выбираем функцию СУММ;
- затем выбираем массив D17:D21, ставим символ умножения;
- выбираем массив Е17:Е21;
- добавляем (+) массив F17:F21, закрываем скобку.
Обязательный момент! После того как мы заполнили формулу, её выполнение производим не через Enter, а последовательным нажатием кнопок Ctrl+Shift+Enter. Если вы нажмете Enter – возвратится ошибка. В этот раз у нас появились фигурные скобки, которые означают, что наша формула выполнила суммирование с помощью правил массива:
Можем сравнить результаты двух примеров (ячейки G22 и С24), чтобы убедиться, что формулы работают одинаково.
Как рассчитать нарастающий итог с помощью функции СУММ
У нас есть отчет о прибыли за каждый месяц. Нам нужно по прошествии месяца рассчитать прибыль, которую мы получили с начала года, это означает, что в марте нам нужно знать сумму прибыли за январь, февраль, март. В ячейке D31 пишем формулу:
Начало диапазона (С31) у нас будет неизменным, поскольку мы указали для этой ячейки абсолютные ссылки. Сейчас конец диапазона у нас та же ячейка С31, поскольку пока что нам нужна сумма продаж только за январь. После этого нам нужно скопировать формулу до конца года. При копировании по столбцу будет меняться только конец диапазона. Таким образом, будет происходить расчет прибыли за месяцы с начала года и мы получим накопительные значения:
Суммирование по выбранным критериям
Еще один пример использования формулы СУММ покажет нам как мы можем подсчитать общую стоимость товаров при наличии конкретных условий. Например, у нас есть данные о стоимости товаров определенных поставщиков с разных стран. Мы хотим узнать стоимость купленных товаров с Англии. В ячейке В64 будем составлять формулу:
- выбираем массив В48:В59. В этом массиве будет производиться поиск по указанному условию;
- ссылаемся на ячейку с условием («Англия», В62);
- ставим символ умножения, выбираем массив Е48:Е59, в котором находятся числовые значения;
- последовательно нажимаем клавиши ctrl + shift + enter для корректного отображения результата. Таким образом мы «говорим» программе, используется формула массива.
Формула произвела поиск по столбцу со странами, нашла товары с Англии и посчитала их общую стоимость:
Можно использовать дополнительные условия. Кроме критерия для поиска по странам, мы можем указать, что хотим найти стоимость товаров определенного поставщика, например, «Baugut». Для удобства в отдельной ячейке (B63) укажем поставщика, чтобы потом ссылаться на эту ячейку. Алгоритм действий для построения формулы точно такой же, как в предыдущем примере, только добавим еще один массив для поиска С48:С59 и искомый критерий «Baugut» в ячейке В63:
Благодаря такому построению формула суммы не только считает заданные значения, а и производит поиск по странам, поставщикам или любым иным критериям, которые пользователь захочет задать, и возвращает сумму найденных товаров:
Как использовать функцию СУММ с другими функциями
Комбинирование функций EXCEL позволяет расширить их функционал. В следующем примере мы рассмотрим простое использование функции СУММ вместе с функцией СМЕЩ для того чтобы понимать логику действия этих функций вместе. На этот раз нам понадобится таблица, в которой находится информация об отделах и их доходах в период с 2014 по 2022 года. Наша задача – найти сумму доходов отдела А и отдела В в 2014-м году. Если вы знакомы с функцией СМЕЩ, тогда знаете, что её аргументы выделяют область необходимых нам значений: от ячейки В71 делаем шаг на две строки вверх и три столбца вправо (первая пара цифр -2;3). Сейчас мы «стали» на ячейку Е69. Затем создаем границы для того массива, данные которых нам нужно суммировать: 1 ряд и 2 столбца (вторая пара цифр). Таким образом мы выбрали диапазон Е69:F69. Теперь полученную формулу вложим в СУММ:
Мы получили результат 100 (отдел А имеет за 2014 год доход в размере 65, а отдел В — 35). Теперь рассчитаем общий доход, например, для отделов В, С, D за 2017-2021 года. Смещаем нашу функцию таким же образом:
- аргумент 1 – ячейка, от которой будет происходить смещение;
- аргумент 2 – смещение на 1 ряд вниз;
- аргумент 3 – смещение на 4 столбца вправо;
- аргумент 4 – количество рядов в массиве (5);
- аргумент 5 – количество столбцов в массиве (3).
Проверка вводимых значений с помощью СУММ
Для выполнения этого примера нам понадобится форма о затратах и инструмент «Проверка данных». Нам нужно установить ограничение на объем совокупных затрат – сумма при добавлении новой позиции (ячейка С100) не должна превышать 25 000:
На вкладке «Данные» — группа «Работа с данными» выбираем инструмент «Проверка данных». У нас откроется окно «Проверка вводимых значений». В появившемся окне в условиях проверки выбираем из списка Тип данных – Другой. Пишем нашу формулу:
Затем переходим на вкладку «Сообщение об ошибке» и указываем текст, который хотим видеть при несоблюдении условия, например, «Лимит превышен!»:
Когда мы введем значение в ячейку С100 или изменим его, запустится проверка данных. Пока сумма по массиву С95:С100 будет меньше 25 000, проверка будет успешной. Вводим число 1000 и видим, что ничего не происходит:
Теперь введем значение 4000 и у нас появится окно с ошибкой, которую мы указывали во вкладке «Сообщение об ошибке»:
Произошло это, потому что инструмент заново посчитал сумму значений по всем статьям затрат и она превысила порог 25 000.
Источник
Подбор слагаемых для нужной суммы
Не очень частый, но и не экзотический случай. На моих тренингах такой вопрос задавали не один и не два раза 🙂 Суть в том, что мы имеем конечный набор каких-то чисел, из которых надо выбрать те, что дадут в сумме заданное значение.
В реальной жизни эта задача может выглядеть по-разному.
- Например, мы выгрузили из интернет-банка все платежи, которые поступили на наш счет за последний месяц. Один из клиентов разбивает сумму своего платежа на несколько отдельных счетов и платит частями. Мы знаем общую сумму оплаты и количество счетов, но не знаем их сумм. Надо подобрать те суммы в истории платежей, которые дадут в общем заданное значение.
- У нас есть несколько рулонов стали (линолеума, бумаги. ), из которых надо подобрать под заказ те, что дадут заданную длину.
- Блэкджек или в народе «очко». Надо набрать карты суммарной стоимостью максимально близкой к 21 баллу, но не превысить этот порог.
В некоторых случаях может быть известна разрешенная погрешность допуска. Она может быть как нулевой (в случае подбора счетов), так и ненулевой (в случае подбора рулонов), или ограниченной снизу или сверху (в случае блэкджека).
Давайте рассмотрим несколько способов решения такой задачи в Excel.
Способ 1. Надстройка Поиск решения (Solver)
Эта надстройка входит в стандартный набор пакета Microsoft Office вместе с Excel и предназначена, в общем случае, для решения линейных и нелинейных задач оптимизации при наличии списка ограничений. Чтобы ее подключить, необходимо:
- в Excel 2007 и новее зайти Файл — Параметры Excel — Надстройки — Перейти (File — Excel Options — Add-ins — Go)
- в Excel 2003 и старше — открыть меню Сервис — Надстройки (Tools — Add-ins)
и установить соответствующий флажок. Тогда на вкладке или в меню Данные (Data) появится нужная нам команда.
Чтобы использовать надстройку Поиск решения для нашей задачи необходимо будет слегка модернизировать наш пример, добавив к списку подбираемых сумм несколько вспомогательных ячеек и формул:
- Диапазон A1:A20 содержит наши числа, из которых мы будем выбирать нужные, чтобы «вписаться» в заданную сумму.
- Диапазон В1:B20 будет своего рода набором переключателей, т.е. будет содержать нули или единички, показывая, отбираем мы данное число в выборку или нет.
- В ячейке E2 стоит обычная автосумма всех единичек по столбцу B, подсчитывающая кол-во выбранных чисел.
- В ячейке E3 с помощью функции СУММПРОИЗВ (SUMPRODUCT) считается сумма попарных произведений ячеек из столбцов А и B (то есть A1*B1+A2*B2+A3*B3+. ). Фактически, здесь подсчитывается сумма чисел из столбца А, отобранных единичками из столбца В.
- В розовую ячейку E4 пользователь вводит желаемую сумму для подбора.
- В ячейке E5 вычисляется абсолютное по модулю значение погрешности подбора с целью ее будущей минимизации.
- Все желтых ячейках Е8:E17 хотелось бы получить список отобранных чисел, т.е. тех чисел из столбца А, напротив которых в столбце В есть единички. Для этого необходимо выделить сразу все (!) желтые ячейки и в них ввести вот такую формулу массива:
После ввода формулы ее необходимо ввести не как обычную формулу, а как формулу массива, т.е. нажать не Enter, а Ctrl+Shift+Enter. Похожая формула используется в примере о ВПР, выдающей сразу все найденные значения (а не только первое).
Теперь перейдем на вкладку (или в меню) Данные и запустим инструмент Поиск решения (Data — Solver):
В открывшемся окне необходимо:
- Задать как целевую функцию (Target Cell) — ячейку вычисления погрешности подбора E5. Чуть ниже выбрать опцию — Минимум, т.к. мы хотим подобрать числа под заданную сумму с минимальной (а лучше даже нулевой) погрешностью.
- В качестве изменяемых ячеек переменных (Changing cells) задать диапазон столбца переключателей B1:B20.
- С помощью кнопки Добавить (Add) создать дополнительное условие на то, что ячейки диапазона B1:B20 должны быть бинарными (т.е. содержать только 0 или 1):
С помощью той же кнопки, при необходимости, создать ограничение на количество чисел в выборке. Например, если мы знаем, что сумма была разбита на 5 счетов, то:
После ввода всех параметров и ограничений запускаем процесс подбора кнопкой Найти решение (Solve). Процесс подбора занимает от нескольких секунд до нескольких минут (в тяжелых случаях) и заканчивается появлением следующего окна:
Теперь можно либо оставить найденное решение подбора (Сохранить найденное решение), либо откатиться к прежним значениям (Восстановить исходные значения).
Необходимо отметить, что для такого класса задач существует не одно, а целое множество решений, особенно, если не приравнивать жестко погрешность к нулю. Поэтому запуск Поиска решения с разными начальными данными (т.е. разными комбинациями 0 и 1 в столбце В) может приводить к разным наборам чисел в выборках в пределах заданных ограничений. Так что имеет смысл прогнать эту процедуру несколько раз, произвольно изменяя переключатели в столбце В.
Найденные комбинации можно сохранять виде сценариев (кнопка Сохранить сценарий), чтобы вернуться к нем позднее с помощью команды Данные — Анализ «что-если» — Диспетчер сценариев (Data — What-If Analysis — Scenario Manager):
И весьма удобно будет вывести все найденные решения, сохраненные в виде сценариев, в одной сравнительной таблице с помощью кнопки Отчет (Summary):
Способ 2. Макрос подбора
В этом способе всю работу делает макрос, который тупо перебирает случайные комбинации чисел, пока не наткнется на нужную сумму в пределах разрешенной погрешности. Добавлять столбец с нулями и единичками и формулы в этом случае не нужно.
Для использования макроса нажмите сочетание Alt+F11, в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Insert — Module и скопируйте туда этот код:
Аналогично первому способу, запуская макрос несколько раз, можно получать разные наборы подходящих чисел.
Источник
Как найти сумму числового и функционального ряда
Числовой ряд является некой последовательностью, которая рассматривается совместно с другой последовательностью (ее еще называют последовательностью частичных сумм). Подобные понятия применяются в математическом и комплексном анализе.
Сумму числового ряда можно легко вычислить в Excel с помощью функции РЯД.СУММ. Рассмотрим на примере, как работает данная функция, а после построим график функций. Научимся применять числовой ряд на практике при подсчете роста капитала. Но для начала немного теории.
Сумма числового ряда
Числовой ряд можно рассматривать как систему приближений к числам. Для его обозначения применяют формулу:
Здесь показана начальная последовательность чисел ряда и правило суммирования:
- ∑ — математический знак суммы;
- ai — общий аргумент;
- i — переменная, правило для изменения каждого последующего аргумента;
- ∞ — знак бесконечности, «предел», до которого проводится суммирование.
Запись обозначает: суммируются натуральные числа от 1 до «плюс бесконечности». Так как i = 1, то подсчет суммы начинается с единицы. Если бы здесь стояло другое число (например, 2, 3), то суммировать мы начинали бы с него (с 2, 3).
В соответствии с переменной i ряд можно записать развернуто:
= а1 + а2 + а3 + а4 + а5 + … (до «плюс бесконечности).
Определение суммы числового ряда дается через «частичные суммы». В математике они обозначаются Sn. Распишем наш числовой ряд в виде частичных сумм:
S1 = а1
S2 = а1 + а2
S3 = а1 + а2 + а3
S4 = а1 + а2 + а3 + а4
Сумма числового ряда – это предел частичных сумм Sn. Если предел конечен, говорят о «сходящемся» ряде. Бесконечен – о «расходящемся».
Сначала найдем сумму числового ряда:
М = 10.
Теперь построим в Excel таблицу значений членов ряда:
Общий первый аргумент берем из формулы: i=3.
Все следующие значения i находим по формуле: =B4+$B$1. Ставим курсор в нижний правый угол ячейки В5 и размножаем формулу.
Найдем значения. Делаем активной ячейку С4 и вводим формулу: =СУММ(2*B4+1). Копируем ячейку С4 на заданный диапазон.
Значение суммы аргументов получаем с помощью функции: =СУММ(C4:C11). Комбинация горячих клавиш ALT+«+» (плюс на клавиатуре).
Функция РЯД.СУММ в Excel
Для нахождения суммы числового ряда в Excel применяется математическая функция РЯД.СУММ. Программой используется следующая формула:
Аргументы функции:
- х – значение переменной;
- n – степень для первого аргумента;
- m – шаг, на который увеличивается степень для каждого последующего члена;
- а – коэффициенты при соответствующих степенях х.
Важные условия для работоспособности функции:
- все аргументы обязательные (то есть все должны быть заполнены);
- все аргументы – ЧИСЛОвые значения;
- вектор коэффициентов имеет фиксированную длину (предел в «бесконечность» не подойдет);
- количество «коэффициентов» = числу аргументов.
Вычисление суммы ряда в Excel
Та же функция РЯД.СУММ работает со степенными рядами (одним из вариантов функциональных рядов). В отличие от числовых, их аргументы являются функциями.
Функциональные ряды часто используются в финансово-экономической сфере. Можно сказать, это их прикладная область.
Например, положили в банк определенную сумму денег (а) на определенный период (n). Имеем ежегодную выплату х процентов. Для расчета наращенной суммы на конец первого периода используется формула:
S1 = a (1 + x).
На конец второго и последующих периодов – вид выражений следующий:
S2 = a (1 + x)2;
S3 = a (1 + x)2 и т.д.
Чтобы найти общую сумму:
Sn = a (1 + x) + a (1 + x)2 + a (1 + x)3 + … + a (1 + x)n
Частичные суммы в Excel можно найти с помощью функции БС().
Исходные параметры для учебной задачи:
Используя стандартную математическую функцию, найдем накопленную сумму в конце срока сумму. Для этого в ячейке D2 используем формулу: =B2*СТЕПЕНЬ(1+B3;4)
Теперь в ячейке D3 решим эту же задачу с помощью встроенной функции Excel: =БС(B3;B1;;-B2)
Результаты одинаковые, как и должно быть.
Как заполнить аргументы функции БС():
- «Ставка» — процентная ставка, под которую оформлен вклад. Так как в ячейке В3 установлен процентный формат, мы в поле аргумента просто указали ссылку на эту ячейку. Если было бы указано число, то прописывали бы его сотую долю (20/100).
- «Кпер» — число периодов для выплат процентов. В нашем примере – 4 года.
- «Плт» — периодические выплаты. В нашем случае их нет. Поэтому поле аргумента не заполняем.
- «Пс» — «приведенная стоимость», сумма вклада. Так как мы на время расстаемся с этими деньгами, параметр указываем со знаком «-».
Таким образом, функция БС помогла найти нам сумму функционального ряда.
В Excel есть и другие встроенные функции для нахождения разных параметров. Обычно это функции для работы с инвестиционными проектами, ценными бумагами и амортизационными платежами.
Построение графика функций суммы числового ряда
Построим график функций, отражающий рост капитала. Для этого нам нужно построить график функции являющейся суммой построенного ряда. За пример, возьмем те же данные по вкладу:
Дальше нам нужна функция для начисления сложных процентов — БС(). Мы узнаем будущею стоимость инвестиций при условии равных платежей и постоянной процентной ставке. Используя функцию БС(), заполним таблицу:
В первой строке показана накопленная сумма через год. Во второй – через два. И так далее.
Сделаем еще один столбец, в котором отразим прибыль:
Как мы считали – в строке формул.
На основании полученных данных построим график функций.
Выделим 2 диапазона: A5:A9 и C5:C9. Переходим на вкладку «Вставка» — инструмент «Диаграммы». Выбираем первый график:
Сделаем задачу еще более «прикладной». В примере мы использовали сложные проценты. Они начисляются на наращенную в предыдущем периоде сумму.
Возьмем для сравнения простые проценты. Формула простых процентов в Excel: =$B$2*(1+A6*B6)
Добавим полученные значения в график «Рост капитала».
Какие именно выводы сделает инвестор – очевидно.
Математическая формула частичной суммы функционального ряда (с простыми процентами): Sn = a (1 + x*n), где а – первоначальная сумма вклада, х – проценты, n – период.
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 сложные выражения, в которых диапазон сложения имеет меньше строк и/или столбцов, чем диапазон поиска, являются капризными. Вот почему рекомендуется всегда иметь их одинакового размера и формы.
Примеры расчета суммы:
Подбор слагаемых для нужной суммы
Не очень частый, но и не экзотический случай. На моих тренингах такой вопрос задавали не один и не два раза
Суть в том, что мы имеем конечный набор каких-то чисел, из которых надо выбрать те, что дадут в сумме заданное значение.
В реальной жизни эта задача может выглядеть по-разному.
- Например, мы выгрузили из интернет-банка все платежи, которые поступили на наш счет за последний месяц. Один из клиентов разбивает сумму своего платежа на несколько отдельных счетов и платит частями. Мы знаем общую сумму оплаты и количество счетов, но не знаем их сумм. Надо подобрать те суммы в истории платежей, которые дадут в общем заданное значение.
- У нас есть несколько рулонов стали (линолеума, бумаги…), из которых надо подобрать под заказ те, что дадут заданную длину.
- Блэкджек или в народе «очко». Надо набрать карты суммарной стоимостью максимально близкой к 21 баллу, но не превысить этот порог.
В некоторых случаях может быть известна разрешенная погрешность допуска. Она может быть как нулевой (в случае подбора счетов), так и ненулевой (в случае подбора рулонов), или ограниченной снизу или сверху (в случае блэкджека).
Давайте рассмотрим несколько способов решения такой задачи в Excel.
Способ 1. Надстройка Поиск решения (Solver)
Эта надстройка входит в стандартный набор пакета Microsoft Office вместе с Excel и предназначена, в общем случае, для решения линейных и нелинейных задач оптимизации при наличии списка ограничений. Чтобы ее подключить, необходимо:
- в Excel 2007 и новее зайти Файл — Параметры Excel — Надстройки — Перейти (File — Excel Options — Add-ins — Go)
- в Excel 2003 и старше — открыть меню Сервис — Надстройки (Tools — Add-ins)
и установить соответствующий флажок. Тогда на вкладке или в меню Данные (Data) появится нужная нам команда.
Чтобы использовать надстройку Поиск решения для нашей задачи необходимо будет слегка модернизировать наш пример, добавив к списку подбираемых сумм несколько вспомогательных ячеек и формул:
- Диапазон A1:A20 содержит наши числа, из которых мы будем выбирать нужные, чтобы «вписаться» в заданную сумму.
- Диапазон В1:B20 будет своего рода набором переключателей, т.е. будет содержать нули или единички, показывая, отбираем мы данное число в выборку или нет.
- В ячейке E2 стоит обычная автосумма всех единичек по столбцу B, подсчитывающая кол-во выбранных чисел.
- В ячейке E3 с помощью функции СУММПРОИЗВ (SUMPRODUCT) считается сумма попарных произведений ячеек из столбцов А и B (то есть A1*B1+A2*B2+A3*B3+…). Фактически, здесь подсчитывается сумма чисел из столбца А, отобранных единичками из столбца В.
- В розовую ячейку E4 пользователь вводит желаемую сумму для подбора.
- В ячейке E5 вычисляется абсолютное по модулю значение погрешности подбора с целью ее будущей минимизации.
- Все желтых ячейках Е8:E17 хотелось бы получить список отобранных чисел, т.е. тех чисел из столбца А, напротив которых в столбце В есть единички. Для этого необходимо выделить сразу все (!) желтые ячейки и в них ввести вот такую формулу массива:
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$A$20;НАИМЕНЬШИЙ(ЕСЛИ(B1:B20=1;СТРОКА(B1:B20);»»);СТРОКА()-СТРОКА($E$8)+1));»»)
=IFERROR(INDEX($A$1:$A$20;SMALL(IF(B1:B20=1;ROW(B1:B20);»»);ROW()-ROW($E$8)+1));»»)
После ввода формулы ее необходимо ввести не как обычную формулу, а как формулу массива, т.е. нажать не Enter, а Ctrl+Shift+Enter. Похожая формула используется в примере о ВПР, выдающей сразу все найденные значения (а не только первое).
Теперь перейдем на вкладку (или в меню) Данные и запустим инструмент Поиск решения (Data — Solver):
В открывшемся окне необходимо:
- Задать как целевую функцию (Target Cell) — ячейку вычисления погрешности подбора E5. Чуть ниже выбрать опцию — Минимум, т.к. мы хотим подобрать числа под заданную сумму с минимальной (а лучше даже нулевой) погрешностью.
- В качестве изменяемых ячеек переменных (Changing cells) задать диапазон столбца переключателей B1:B20.
- С помощью кнопки Добавить (Add) создать дополнительное условие на то, что ячейки диапазона B1:B20 должны быть бинарными (т.е. содержать только 0 или 1):
- С помощью той же кнопки, при необходимости, создать ограничение на количество чисел в выборке. Например, если мы знаем, что сумма была разбита на 5 счетов, то:
После ввода всех параметров и ограничений запускаем процесс подбора кнопкой Найти решение (Solve). Процесс подбора занимает от нескольких секунд до нескольких минут (в тяжелых случаях) и заканчивается появлением следующего окна:
Теперь можно либо оставить найденное решение подбора (Сохранить найденное решение), либо откатиться к прежним значениям (Восстановить исходные значения).
Необходимо отметить, что для такого класса задач существует не одно, а целое множество решений, особенно, если не приравнивать жестко погрешность к нулю. Поэтому запуск Поиска решения с разными начальными данными (т.е. разными комбинациями 0 и 1 в столбце В) может приводить к разным наборам чисел в выборках в пределах заданных ограничений. Так что имеет смысл прогнать эту процедуру несколько раз, произвольно изменяя переключатели в столбце В.
Найденные комбинации можно сохранять виде сценариев (кнопка Сохранить сценарий), чтобы вернуться к нем позднее с помощью команды Данные — Анализ «что-если» — Диспетчер сценариев (Data — What-If Analysis — Scenario Manager):
И весьма удобно будет вывести все найденные решения, сохраненные в виде сценариев, в одной сравнительной таблице с помощью кнопки Отчет (Summary):
Способ 2. Макрос подбора
В этом способе всю работу делает макрос, который тупо перебирает случайные комбинации чисел, пока не наткнется на нужную сумму в пределах разрешенной погрешности. Добавлять столбец с нулями и единичками и формулы в этом случае не нужно.
Для использования макроса нажмите сочетание Alt+F11, в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Insert — Module и скопируйте туда этот код:
Sub Combinator() Dim Data() As Variant, Selected() As Variant Dim goal As Double, sel_count As Integer, prec As Double Const LIMIT = 1000000 prec = Range("D5").Value sel_count = Range("D2").Value goal = Range("D4").Value Set OutRange = Range("D8") Set InputRange = Range("A1", Range("A1").End(xlDown)) input_count = InputRange.Cells.Count Data = InputRange.Value ReDim Selected(1 To sel_count) As Variant NewTry: For j = 1 To sel_count Start: RandomIndex = Int(Rnd * input_count + 1) RandomValue = Data(RandomIndex, 1) 'начиная со второго элемента дополнительно проверяем, чтобы такой уже не был выбран If j > 1 Then For k = 1 To j - 1 If Selected(k) = RandomValue Then GoTo Start Next k End If Selected(j) = RandomValue Next j If Abs(WorksheetFunction.Sum(Selected) - goal) <= prec Then Range("D3").Value = WorksheetFunction.Sum(Selected) MsgBox "Подбор завершен. Необходимая точность достигнута." Range(OutRange, OutRange.End(xlDown)).ClearContents OutRange.Resize(sel_count, 1).Value = Application.Transpose(Selected) Exit Sub Else iterations = iterations + 1 If iterations > LIMIT Then MsgBox "Достигнут лимит попыток. Решение не найдено." Exit Sub Else GoTo NewTry End If End If End Sub
Аналогично первому способу, запуская макрос несколько раз, можно получать разные наборы подходящих чисел.
P.S. Сейчас набегут энтузиасты с мехмата МГУ с криками «Тупой перебор — это неэстетично!» Да, я в курсе, что прямой перебор вариантов — это не самый оптимальный способ поиска. Да, существует много умных алгоритмов поиска решения таких задач, которые сокращают время поиска и находят нужную комбинацию заметно быстрее. Могу даже рассказать про парочку. Но мне на данном этапе существующей скорости «тупого перебора» вполне достаточно — обработка массива из 1000 ячеек идет меньше секунды. Готов подождать
Ссылки по теме
- Оптимизация бизнес-модели с помощью надстройки Поиск решения (Solver)
- Что такое макросы, куда и как вставлять код макросов на VBA
Кейс 2. Функция «СУММЕСЛИ»
Итак, первая задача решена.
С каждым уроком, задания станут более массивными и сложными, поэтому не оставляй без внимания теоретические блоки — они очень пригодятся! Скачивай быстрей кейс и приступай к разбору.
Удачи!
Разбор кейса с применением функции, когда следует суммировать значения столбца таблицы по заданным условиям.
Рассмотрим ситуацию оценки отдела продаж.
Имеется информация о продажах каждого менеджера за период, данные представлены в детализации по продажам каждого менеджера до уровня дня. Формат таблицы показан на рисунке ниже:
Задача: Необходимо вывести таблицу по продажам каждого менеджера за весь период.
Для получения конечного результата нам нужно суммировать продажи по полю «Сумма» для каждого менеджера.
Для начала получим список всех менеджеров отдела продаж.
Копируем столбец «В» на соседний лист и, не снимая выделения с диапазона, переходим на вкладку «Данные» панели инструментов:
Выбираем «Удалить дубликаты»:
Следуем подсказкам программы, получаем уникальный список менеджеров. Добавляем заголовок «Сумма» в соседнем столбце:
Следующим этапом будем искать соответствия с этим списком в исходной таблице и суммировать их
Для этих целей предусмотрена функция «СУММЕСЛИ»
СУММЕСЛИ — суммирует диапазон ячеек по заданным условиям
Вид функции: =СУММЕСЛИ(Диапазон;Критерий;Диапазон суммирования)
Значениями аргумента должна быть таблица с данными, в которой содержится столбец для суммирования и столбец, содержащий условия.
Одномерный массив (столбец) с условиями, по которым осуществляется отбор.
Диапазон ячеек (столбец), который необходимо суммировать.
Значениями аргумента должна быть таблица с данными, в которой содержится столбец для суммирования и столбец, содержащий условия.
Одномерный массив (столбец) с условиями, по которым осуществляется отбор.
Диапазон ячеек (столбец), который необходимо суммировать.
Приступаем к суммированию результатов каждого менеджера. Заполняем таблицу:
5.1. Ставим курсор в ячейку «В». Открываем «Мастер функций» и находим в категории «Математические» функцию «СУММЕСЛИ«
5.2. Перед нами открывается диалоговое окно:
5.3. Для поля «Диапазон» выделяем столбец «В» и «С» с данными для проверки и суммирования.
5.4. Для поля «Критерий» выделяем столбец «А» в новой таблице с уникальным списком менеджеров.
5.5. Для поля «Диапазон суммирования» выделяем столбец «С» исходной выгрузки.
5.6. Нажимаем «ОК» и протягиваем формулу до конца таблицы, получаем результат.
Хочешь закрепить материал?
Реши задачу самостоятельно!