Пропорционально изменить сумму в строках
☑
0
dj_serega
26.06.14
✎
12:55
Всем привет.
Не могу решить простейшую задачу.
Есть три строки с суммами:
1. 19000
2. 25000
3. 10000
Итого: 54000
Нужно увеличить строку 1 до 20000, а строки 2 и 3 уменьшить пропорционально, что бы итоговая сумма не изменилась.
В итоге нужно:
1. 20000
2. ???
3. ???
Итого: 54000
Подтолкните, пожалуйста, в русло расчета.
1
Рэйв
26.06.14
✎
13:02
на строку 2
1000*(3/5)
на строку 3
1000*(2/5) на
в школу не ходил чтоли?
2
dj_serega
26.06.14
✎
13:05
(1) Так сам в шоке... Вроде и еще не пятница, а с элементарной задачей не могу справиться.
3
Бешеная Нога
26.06.14
✎
13:06
1. пронумеровать строки таблицы в запросе
2. условием по номеру строки разбить таблицу на две (1 строка - Т1 и все остальные - Т2)
3. В таблице Т1 уменьшить значение поля на сумму &СуммаКУменьшению
4. В таблице Т2 запросом распределеить &СуммаКУменьшению на все строки и уменьшить соответствующие значения на сумму распределения
5. объединить Т1 и Т2
4
Рэйв
26.06.14
✎
13:13
(2)хотя погодь:-) Я тебе наврал кажется.
на строку 2 : 10000/(35000/100) ~ 28,5 % = 285 (28,5 % от 1000)
значит на строку 3 : 715
Вот так:-)
5
dj_serega
26.06.14
✎
13:21
Спасибо за помощь. Вообщем получилось так. Еще потестирую :)
СуммаСтрокиДо = СтрокаТЧ.Сумма;
ПроцентОтСуммы = РазницаИзмененнойСуммы / СуммаСтрокиДо / КоличествоСтрокБезИзмененной;
СуммаСтрокиПосле = СуммаСтрокиДо - (СуммаСтрокиДо * ПроцентОтСуммы);
СтрокаТЧ.Сумма = СуммаСтрокиПосле;
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший