Страницы: 1
RSS
Равномерное разделение суммы в периоде(12 мес) от общего числа в (равномерно в строке но не более в столбце)
 
Добрый день!
Уважаемые форумчане, прошу помочь в решении задачи:

Есть столбец с некоторым количесвом строк, которые образуют некоторую сумму. Нужно равномерно за 12 периодов разделить на равные части и раномерно, т.е. в каждом периоде сумма строк была равна сумма/12 и за весь период по всем ячейкам получилась сумма

В приложении пример.
я смог разделить, но получается не равномерно, но в сумме все верно.

Решения такой задачи на форуме и других ресурсах не нашел, т.к. везде или равномерно в столбце одном или в строке, а как в матрице нет.

спасибо за помощь
Изменено: Александр - 22.10.2021 19:02:18
 
=ЦЕЛОЕ($A$1/12)+ ЕСЛИ(СУММ(B2:B16)>НАИМЕНЬШИЙ(МУМНОЖ(ТРАНСП(СТРОКА(B2:B16)^0);$B$2:$M$16);Мшт);1;)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко,

Спасибо, что то не работает формула или я не правильно выразил мысль:

В столбце А строки имеют какие либо значения, сумма которых в ячейке А1=93, имеются 12 периодов
нужно число каждой строки из столбца А1 разделить в периоде пропорционально их значению таким образом, что бы сумма столбцов B1-M1 была A1/12, т.е.7,75 (округление до 8 и так во всем массиве.

Примерно как на картинке, т.е. сумма по столбцу в периоде  должна быть 8  и в конце 7 7 7, т.к 93/12=7,75, а в строке значения, которые дадут нам сумму из столбца А1

Спасибо,  
Изменено: Александр - 22.10.2021 20:28:57
 
думаете сейчас вы ее выразили понятно?
увы...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, попробую другой рисунок
Т.е. нужно рассчитать и заполнить массив таким образом, что бы сумма столбцов равнялась А1/12, а сумма каждой строки в периоде = значениям из ячеек Столбца А, что все в итоговой сумме массива даст нам значение А1, т.е. сумме массива
 
разносите пока вручную
а когда придумаете формулировку - пишите, прямо сюда, сделаем)
в любой задаче нужно понимать:
1. Исходные (где находятся, что из себя представляют, как поступают в систему)
2. Результат (что нужно получить в результате, где разместить результаты)
3. Алгоритм (порядок действий, следуя которым из исходных можно получить результаты)
последнее не обязательно)
Изменено: Ігор Гончаренко - 22.10.2021 20:47:31
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, спасибо

Попытка 3:
Наверное объясню для чего применимо: на разных объектах стоят некоторые единицы оборудования и со временем устаревают, вывести и заменить их единовременно невозможно из-за специфики работы и дороговизны, поэтому самое старое оборудование берется из каждого объекта и равномерно меняется в периоде по нескольким объектам без единовременной нагрузки на бюджет
как то так


1. Есть данные (просто цифры) в ячейках столбца А, т.е. А4-А19. Сумма данных столбца А из примера=93 и есть 12 периодов
2. Нужно заполнить ячейки массива таким образом, что бы каждая строка массива в сумме соответствовала числу из соответствующей ячейки, т.е. при значении 14 в ячейке, данные должны распределиться в периодах таким образом, что бы в сумме давать 14 (2+2+1+1+1+1+1+1+1+1+1+1)
В свою очередь сумма значений ячеек в столбцах периода должна быть общая сумма /12 периодов.

Примерно так:

      1  2  3  4  5  6  7  8  9  10  11  12
5    1  1  0  1  0  1  0  1  0   0    1    0     = сумма строки = 5
10   1  1  1  1  1  1  1  0  1   1    0    1     = сумма строки = 10

Сумма значений каждого столбца = 1 или 2 (т.к. 15/12=1,25), но в сумме =15

3. Алгоритм в поиске

В приложении еще один тест (test2, на листе 2).
в ячейках первого периода придумал такую формулу =ОКРУГЛ((($B$3/11)*((100*B4)/B$3))/100;0)
в ячейках 2-12 периода такую =ОКРУГЛ((($B$3/11)*((100*($B4-СУММ($C4:C4)))/C$3))/100;0)

Пока не знаю как, но работает...только подогнать пришлось, т.к. в 0 не выходил к концу 12 периода и суммы столбцов ушли начиная с 3 периода.

Ранее рассматривал еще вариант зависящий от процентного отношения, но что то тоже пошло не так, т.к. при большом количестве строк процент сильно падает и округляет все к 0, и в итоге к 7 периоду единицы пропадают, или при очень большом списке всегда значение единиц при расчете по процентам меньше 0,5 и округляется к 0


Все что могу придумать и описать
Изменено: Александр - 22.10.2021 21:46:31
 
Цитата
Александр написал:
В свою очередь сумма значений ячеек в столбцах периода должна быть общая сумма /12 периодов
в ячейки столбца нужно поставить целые числа?
93/12 = 7.75
НЕВОЗМОЖНО суммируя целые числа получить 7.75  НИКОГДА сумма НИКАКИХ целых чисел не будет равна 7.75 НИКОГДА
нет в природе такой комбинации ЦЕЛЫХ чисел чтобы в сумме они дали 7 целых 75 сотых
ваша задача не решаема, не тратьте силы и время
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко,

Как я писал ранее и в примере - при значении дроби сумма будет 8 и 7, т.е. для 12 периодов будет 8+8+8+8+8+8+8+8+8+7+7+7
и да, в ячейках столбцов только целые числа. в таком плане, как я описал - все решаемо. вопрос времени. При расчете единиц по процентному соотношению и небольших объемах объектов, т.е. строк все получается очень даже хорошо..но проблема возникла такая:
Цитата
Ранее рассматривал еще вариант зависящий от процентного отношения, но что то тоже пошло не так, т.к. при большом количестве строк процент сильно падает и округляет все к 0, и в итоге к 7 периоду единицы пропадают, или при очень большом списке всегда значение единиц при расчете по процентам меньше 0,5 и округляется к 0
Подумал, что может у более опытных пользователей Excel встречались подобные задачи или могут возникнуть идеи на этот счет, как минимум за это, спасибо вам большое
Изменено: Александр - 22.10.2021 22:26:03
 
Цитата
Александр написал:
может у более опытных пользователей Excel
правильное решение - нужно подождать более опытных)
Изменено: Ігор Гончаренко - 23.10.2021 08:40:17
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
см.вложение
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко,

Спасибо,

Я формул не увидел. Вы вручную рассчитывали?  
 
макрос посчитал

в колонке А в конце каждого варианта написано, на какой секунде он начал считать, на какой закончил и последнее число сколько секунд ушло на расчеты ( в основном там 0 сек, но встречается 0.03...)
на листе 3
макрос случайным образом решил для скольки значений составить таблицу, потом случайным образом назначил значения от 1 до 33 (см.колонка В), выдал результат и в конце таблицы в А написано сколько значений в этой таблице, сколько времени было потрачено макросом на подготовку и заполнение таблицы (на листе 3 11 таблиц с разным количеством строк в каждой)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко,

Круто, спасибо, вариантов достаточно много)
Страницы: 1
Наверх