Excel распределение суммы по ячейкам
Добрый день.
Просьба помочь в решении вопроса:
Есть сумма (ячейка А1), которую необходимо распределить по 10 ячейкам, причем 5 ячеек (с Е2 по Е6) должны быть со знаком "+", а 5 ячеек (с Е7 по Е11) должны быть со знаком "-".
Распределить нудно так, чтобы цифры получились более-менее целыми, можно округлить до двух (максимум) трех цифр после запятой.
После распределения сумма ячеек с Е по Е должна быть равна цифре, указанной в ячейке А.
Добрый день.
Просьба помочь в решении вопроса:
Есть сумма (ячейка А1), которую необходимо распределить по 10 ячейкам, причем 5 ячеек (с Е2 по Е6) должны быть со знаком "+", а 5 ячеек (с Е7 по Е11) должны быть со знаком "-".
Распределить нудно так, чтобы цифры получились более-менее целыми, можно округлить до двух (максимум) трех цифр после запятой.
После распределения сумма ячеек с Е по Е должна быть равна цифре, указанной в ячейке А.
Спасибо Автор - aidenok
Дата добавления - 01.08.2018 в 16:27
Добрый день.
1. Вопрос: Как Вы хотите получить сумму с 6 знаками после запятой, если у слагаемых максимум 3 знака?
2. Вопрос: В чем заключается задача? Есть ли у нее прикладное/практическое применение? Ведь решений для поставленной задачи = математическая бесконечность
для примера так
Добрый день.
1. Вопрос: Как Вы хотите получить сумму с 6 знаками после запятой, если у слагаемых максимум 3 знака?
2. Вопрос: В чем заключается задача? Есть ли у нее прикладное/практическое применение? Ведь решений для поставленной задачи = математическая бесконечность
для примера так
1.) я об этом не подумала. извините.
2. Практическое значение есть, необходимо посчитать цифру от обратного.
То, что Вы сделали мне подходит, только подскажите, пожалуйста, как сделать так, чтобы при распределении не одинаковые числа получались в ячейках, а каждой ячейке получались разные числа?
1.) я об этом не подумала. извините.
2. Практическое значение есть, необходимо посчитать цифру от обратного.
То, что Вы сделали мне подходит, только подскажите, пожалуйста, как сделать так, чтобы при распределении не одинаковые числа получались в ячейках, а каждой ячейке получались разные числа? aidenok
То, что Вы сделали мне подходит, только подскажите, пожалуйста, как сделать так, чтобы при распределении не одинаковые числа получались в ячейках, а каждой ячейке получались разные числа? Автор - aidenok
Дата добавления - 01.08.2018 в 17:48
Для выборочного подсчета по нескольким условиям в больших таблицах можно использовать несколько способов: фильтры, сводные таблицы, функции СУММЕСЛИ и СУММЕСЛИМН и т.д.
Еще одним, относительно экзотическим, но весма мощным инструментом является функция БДСУММ (DSUM) из категории Работа с базой данных (Database) . При внешней простоте, она позволяет гибко фильтровать списки по нескольким сложным и связанным между собой условиям и подсчитывает сумму найденных записей по заданному столбцу. Синтаксис функции таков:
=БДСУММ( Исходные_данные ; Столбец_результата ; Диапазон_условий )
- Исходные_данные - диапазон, включающий в себя таблицу с данными, которые мы анализируем и строкой заголовка.
- Столбец_результата - название (из шапки таблицы) или порядковый номер столбца, по которому нужно просуммировать данные.
- Диапазон_условий - диапазон, содержащий названия столбцов и условия по ним.
Чтобы удобнее было ссылаться эту таблицу в будущем, конвертируем ее в "умную" командой Форматировать как таблицу на вкладке Главная (Home - Format as Table) или сочетанием клавиш Ctrl + T . На появившейся затем вкладке Конструктор (Design) зададим ей имя - например БазаДанных.
Простая сумма по одному условию
Начнем с простого случая. Допустим, нам нужно просуммировать стоимость по всем сделкам сока Добрый. Это будет выглядеть следующим образом:
Обратите внимание на следующие моменты:
Приблизительный и точный текстовый поиск
При необходимости, можно легко реализовать не только точный, но и приблизительный текстовый поиск. Посмотрите внимательно на следующие варианты суммирования выручки по городу Абакан и разницу между ними:
- Если нужен поиск точного соответствия, то используем конструкцию '= (апостроф и знак равно).
- Если нужен поиск подстроки, т.е. всех ячеек, которые содержат нужное значение, то его надо заключить в звездочки. В нашем случае будут просуммированы все варианты Абакана (с "г.", без "г.", с пробелами перед-после и т.п.)
- Если просто ввести значение без равно и звездочек, то будут найдены и просуммированны все строки, где содержимое начинается с указанного значения, т.е. это равноценно звездочке в конце.
Несколько условий со связками "И" - "ИЛИ"
Если нужно просуммировать данные по нескольким условиям, связанным друг с другом логическим оператором И (AND), то ячейки с этими условиями должны быть в одной строке. Например, если нужно просуммировать все продажи Fanta по Абакану (в любом виде его написания), то это будет выглядеть так:
Если же нужно связать несколько условий логическим оператором ИЛИ (OR), то их нужно расположить в разных строчках. Например, если нужно просуммировать деньги по всем вариантам написания "города на Неве", коих великое множество:
И конечно же, можно комбинировать оба подхода, сочетания в одном запросе условия со связками И и ИЛИ одновременно:
В этом случае вычисляется сумма продаж Fanta в Абакане и Burn у Дубинина.
Суммирование по интервалу дат
В диапазоне условий можно легко задать интервал дат для подсчета. Если интервал ограничен с двух сторон, то нужно будет задать два условия, связанных между собой логическим "И" - поэтому придется писать условия в одной строке, т.е. добавить еще один столбец с тем же названием Дата сделки:
В данном случае вычисляется сумма продаж Fanta за 2016 год и Фруктайм до 2016 года.
Условия для чисел
Исключения "все кроме"
Если нужно при суммировании исключить записи по какому-либо параметру, то можно использовать символы "<>" обозначающие "не равно" в синтаксисе Excel. Допустим, нам нужно просуммировать все данные по Fanta кроме Самары и по Квасу кроме Пензы - это будет выглядеть так:
Заключение
Надеюсь, вы уже поняли, что функция БДСУММ является очень неплохим инструментом и, зачастую, более удобной альтернативой классическим функциям выборочного подсчета типа СУММЕСЛИ (SUMIF) и СУММЕСЛИМН (SUMIFS) . Кроме того, в той же категории Работа с базой данных (Database) можно найти ее "подруг", вычисляющих не только сумму:
Не очень частый, но и не экзотический случай. На моих тренингах такой вопрос задавали не один и не два раза :) Суть в том, что мы имеем конечный набор каких-то чисел, из которых надо выбрать те, что дадут в сумме заданное значение.
В реальной жизни эта задача может выглядеть по-разному.
- Например, мы выгрузили из интернет-банка все платежи, которые поступили на наш счет за последний месяц. Один из клиентов разбивает сумму своего платежа на несколько отдельных счетов и платит частями. Мы знаем общую сумму оплаты и количество счетов, но не знаем их сумм. Надо подобрать те суммы в истории платежей, которые дадут в общем заданное значение.
- У нас есть несколько рулонов стали (линолеума, бумаги. ), из которых надо подобрать под заказ те, что дадут заданную длину.
- Блэкджек или в народе "очко". Надо набрать карты суммарной стоимостью максимально близкой к 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):
После ввода всех параметров и ограничений запускаем процесс подбора кнопкой Найти решение (Solve). Процесс подбора занимает от нескольких секунд до нескольких минут (в тяжелых случаях) и заканчивается появлением следующего окна:
Теперь можно либо оставить найденное решение подбора (Сохранить найденное решение), либо откатиться к прежним значениям (Восстановить исходные значения).
Необходимо отметить, что для такого класса задач существует не одно, а целое множество решений, особенно, если не приравнивать жестко погрешность к нулю. Поэтому запуск Поиска решения с разными начальными данными (т.е. разными комбинациями 0 и 1 в столбце В) может приводить к разным наборам чисел в выборках в пределах заданных ограничений. Так что имеет смысл прогнать эту процедуру несколько раз, произвольно изменяя переключатели в столбце В.
Найденные комбинации можно сохранять виде сценариев (кнопка Сохранить сценарий), чтобы вернуться к нем позднее с помощью команды Данные - Анализ "что-если" - Диспетчер сценариев (Data - What-If Analysis - Scenario Manager):
И весьма удобно будет вывести все найденные решения, сохраненные в виде сценариев, в одной сравнительной таблице с помощью кнопки Отчет (Summary):
Способ 2. Макрос подбора
В этом способе всю работу делает макрос, который тупо перебирает случайные комбинации чисел, пока не наткнется на нужную сумму в пределах разрешенной погрешности. Добавлять столбец с нулями и единичками и формулы в этом случае не нужно.
Для использования макроса нажмите сочетание Alt+F11, в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Insert - Module и скопируйте туда этот код:
Аналогично первому способу, запуская макрос несколько раз, можно получать разные наборы подходящих чисел.
P.S. Сейчас набегут энтузиасты с мехмата МГУ с криками "Тупой перебор - это неэстетично!" Да, я в курсе, что прямой перебор вариантов - это не самый оптимальный способ поиска. Да, существует много умных алгоритмов поиска решения таких задач, которые сокращают время поиска и находят нужную комбинацию заметно быстрее. Могу даже рассказать про парочку. Но мне на данном этапе существующей скорости "тупого перебора" вполне достаточно - обработка массива из 1000 ячеек идет меньше секунды. Готов подождать :)
Как разделить общий платеж по месяцам в Excel?
Иногда у нас есть общая сумма, которую необходимо распределить на определенное количество месяцев в среднем с определенного начального месяца, в этом случае вы можете использовать формулу для быстрого вычисления среднего числа в Excel, как показано ниже:
Щелкните в начальной ячейке диапазона, который находится под номером первого месяца, введите эту формулу
B1 - ячейка суммы, B3 - номер монтирования, B2 - месяц начала, D1 - первое монтирование в диапазоне месяцев.
Нажмите Enter и перетащите маркер автозаполнения по всем ячейкам месяца. Теперь отображаются ежемесячные выплаты, которые необходимо распределить.
Быстрое разделение нескольких листов на отдельные книги в Excel
Прочие операции (статьи)
Как разбить адрес на отдельные части в Excel?
В этой статье показаны методы разбиения или разделения нескольких адресов на отдельные части в Excel.
Как разбить или разбить число на отдельные цифры в Excel?
Предположим, вам нужно разбить номер на отдельные цифры, как показано на скриншоте ниже, что вы можете сделать для этого? Эта статья предоставит вам два метода.
Как извлечь отчество только из полного имени в Excel?
Как мы знаем, у многих людей есть отчество, и мы обычно не используем их отчество. Теперь у вас есть список полных имен в Excel, и все они имеют отчество, и вы хотите извлечь только отчество.
Как быстро разбить ячейку в таблицу в Excel?
Вот несколько ячеек на листе, каждая из которых содержит несколько значений, и теперь я хочу разбить ячейки на диапазон в виде таблицы, как показано ниже. Есть какие-нибудь хитрости для решения этой задачи в Excel?
Как быстро суммировать каждую вторую или n-ю строку / столбец в Excel?
Как мы все знаем, мы можем применить функцию Sum, чтобы добавить список ячеек, но иногда нам нужно суммировать каждую другую ячейку для какой-то цели, а в Excel нет стандартной функции, позволяющей суммировать каждую n-ю ячейку. Как в этой ситуации суммировать каждую вторую или n-ю строку / столбец в Excel?
To sum, average or count every other or nth row or column, Kutools for Excel's Select Interval Rows & Columns feature may help you to select every other or nth row firstly, and then get the calculations at the bottom of the status bar. Read more. Free Dowload.
Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download and free trial Now!
Суммируйте каждую вторую или n-ю строку / столбец с формулами
В следующем примере я покажу вам, как применять формулы, суммирующие все остальные ячейки.
1. Используйте формулы массива для суммирования каждой второй строки или столбца.
В пустой ячейке введите эту формулу: =SUM(IF(MOD(ROW($B$1:$B$15),2)=0,$B$1:$B$15,0)), затем нажмите Shift + Ctrl + Enter ключи и значения всех остальных ячеек в столбце B были суммированы. Смотрите скриншоты:
Ноты:
1. В приведенной выше формуле массива вы можете изменить число 2 на 3, 4, 5…, это означает суммировать каждую 3-ю строку, каждую 4-ю строку, каждую 5-ю строку .
2. Если вы хотите просуммировать каждый второй столбец, вы можете ввести следующую формулу: =SUM(IF(MOD(COLUMN($A$1:$O$1),2)=0,$A$1:$O$1,0)) , и нажмите Shift + Ctrl + Enter ключи, чтобы получить результат. Смотрите скриншот:
2. Используйте формулы для суммирования каждой второй строки или столбца.
Вот еще одна формула, которая поможет вам суммировать каждую вторую или n-ю ячейку на листе.
В пустой ячейке введите эту формулу: =SUMPRODUCT((MOD(ROW($B$1:$B$15),3)=0)*($B$1:$B$15)) , Затем нажмите Enter key, и каждая третья ячейка была добавлена. Смотрите скриншоты:
Ноты:
1. В приведенной выше формуле вы можете изменить число 3 на 4, 5, 6…, это означает суммировать каждую 4-ю строку, каждую 5-ю строку, каждую 6-ю строку .
2. Если вы хотите просуммировать каждый второй столбец, вы можете ввести следующую формулу: =SUMPRODUCT((MOD(COLUMN($A$1:$O$1),3)=0)*($A$1:$O$1)).
Суммируйте каждую вторую или n-ю строку / столбец с помощью функции, определяемой пользователем
Следующая определяемая пользователем функция также может помочь вам добавить каждую вторую или n-ю ячейку в Excel.
1. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.
3. Затем сохраните этот код и введите следующую формулу в пустую ячейку, как вам нужно, см. Снимки экрана:
Для суммирования каждой четвертой строки: = SumIntervalRows (B1: B15,4)
Для суммирования каждого четвертого столбца: = SumIntervalCols (A1: O1,4)
4, Затем нажмите Enter ключ, вы получите расчет. Смотрите скриншоты:
Суммируйте каждую четвертую строку:
Суммируйте каждый четвертый столбец:
Внимание: Вы можете изменить число 4 на любые другие числа, такие как 2, 3, 5… это означает суммирование каждой второй строки, каждой третьей строки, каждой пятой строки или столбца.
Сумма / среднее / подсчет каждой другой или n-й строки / столбца с помощью Kutools for Excel
Может быть, и формулы, и пользовательская функция несколько сложны для большинства из вас, здесь я могу представить вам более простой способ решения этой задачи.
Работы С Нами Kutools for ExcelАвтора Выберите интервальные строки и столбцы, вы можете сначала выбрать любую другую или n-ю ячейку, которая вам нужна, а затем дать выбранным ячейкам определенное имя, наконец, используя функцию Sum для суммирования ячеек.
После установки Kutools for Excel, выполните следующие действия:
1. Выберите столбец, в котором вы хотите суммировать каждую вторую или n-ю ячейку.
2. Нажмите Кутулс > Выберите > Выберите интервальные строки и столбцы, см. снимок экрана:
3. В Выберите интервальные строки и столбцы диалоговом окне укажите необходимые операции, см. снимок экрана:
4. Нажмите OK, и каждая вторая строка была выбрана из первой строки, и теперь вы можете просматривать вычисленные результаты, такие как среднее значение, сумма, количество, которые отображаются в нижней части строки состояния. Смотрите скриншот:
Ноты:
1. С помощью этой функции вы можете установить число 2, 3, 4… в Интервал вариант, и вы выберете ячейки с интервалом в 2, 3, 4 строки, начиная с первой строки диапазона на шаге 3.
2. С помощью описанных выше шагов вы также можете суммировать каждый второй или n-й столбец по мере необходимости.
Если вы хотите узнать больше об этой функции, нажмите Выберите интервальные строки и столбцы.
Демо: сумма / среднее / подсчет каждой второй или n-й строки / столбца с помощью Kutools for Excel
Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно попробовать бесплатно без ограничений в течение 30 дней. Загрузите и бесплатную пробную версию прямо сейчас!
Читайте также: