Страницы: 1
RSS
Вычитание до определённого значения по столбцу, Вычитание до определённого значения по столбцу
 
Мастера Excel, обращаюсь к вам за помощью. Возможно кто-то уже сталкивался с подобной задачей.
Есть список сотрудников, за которыми закреплены определённые суммы денег.
Есть определённая сумма денег которую нужно с них удержать.(в моём примере это 250 тыс)
Нужно разбить сумму пропорционально каждого сотрудника. В зависимости от того сколько у него денег числится сейчас.
Но задача усложняется тем что есть 3 порога:
1. Сначала вычитаем суммы по сотрудникам у которых сумма свыше 100 тыс, но при вычитании сумма оставшихся денежных средств у сотрудника не должна быть снижена  ниже 100 тыс.
2. если данных сумм не хватает продолжаем вычитание до 60 тыс. т.е нельзя чтобы ниже  сумма падала.
3. Если опять не хватает, то вычитаем до 40 тыс. 40 тыс это предел, ниже вычитать нельзя.
В общем нужно сумма 250 тыс таким образом поделить на всех, при этом соблюдая данные пороги.
Я пока додумался только вот до такой формулы: =$I$2/СУММ($B$3:$B$8)*B3 (Она в файле есть), но как это сделать с соблюдением заявленных порогов, что-то не могу понять.
Может вы что-то интересное посоветуете? Заранее всем спасибо!
 
вы придумали формулу, которая не решает вашу задачу
напишите кому-нибудь сумму 41тыс. посмотрите какую часть из нужных 250 тыс. ваша формула предложит содрать с него
Цитата
написал:
Нужно разбить сумму пропорционально каждого сотрудника
нужно доработать условия задачи, если сами придумали, то сами можете и поменять.
а если задачу и ее условия вам подкинула жизнь, то возможно масса вариантов, когда задача в зявленных вами условиях не будет иметь решения
но если 250 тыс нужно собрать обязательно (деньги-то есть) и никого не обдирать до суммы меньше 40 тыс. нужно отказаться от принципа строгой пропорциональности в пользу какой-то другой, "условной пропорциональности"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Вы правы, если поставить число 41 тыс, тогда я выхожу за рамки 40 тыс руб. Я решил эту проблему с помощью  подставного столбца (расчётного) где через функцию "Если" заложил минимальный остаток в 40 тыс. Теперь всё считается как нужно, вот только с порогами в 60 и 100 тыс сообразить не могу.    
Изменено: Вадим - 20.04.2022 01:18:50
 
при таких данных
5 первых могут скинуться и у них останется более 60 тыс у каждого
Суммавычесть250000остат
13200066420.6665579.34
7400012915.1361084.87
11900054428.0464571.96
8600023985.2462014.76
16000092250.9267749.08
41000041000
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Вадим, нужно не формулу придумывать а правило более четко описывать.
Цитата
Вадим написал:
Сначала вычитаем суммы по сотрудникам у которых сумма свыше 100 тыс,
Цитата
Вадим написал:
если данных сумм не хватает продолжаем вычитание до 60 тыс.
первые суммы вычитаются пропорционально между теми у кого более 100 или как? Или просто порог снижается?
Если последнее, то можно попробовать такой метод.
По вопросам из тем форума, личку не читаю.
 
я решал такую задачу:
1. если у тех, у кого сумма за 100тыс., достаточно денег чтобы собрать с них вместе 250 тыс. и при этом у каждого из них все еще останется больше 100тыс. берем деньги только с них
2. дальше тоже  самое, но для тех, у кого сумма более 60 тыс.
если 1 и 2 невозможно берем со всех у кого сумма больше 40тыс
вот такой формулой:
Код
=ЕСЛИ(СУММЕСЛИ($B$3:$B$8;">100000")-100000*СЧЁТЕСЛИ($B$3:$B$8;">100000")>=$I$2;(B3-100000)*(B3>100000)*$I$2/(СУММЕСЛИ($B$3:$B$8;">100000")-100000*СЧЁТЕСЛИ($B$3:$B$8;">100000"));ЕСЛИ(СУММЕСЛИ($B$3:$B$8;">60000")-60000*СЧЁТЕСЛИ($B$3:$B$8;">60000")>=$I$2;(B3-60000)*(B3>60000)*$I$2/(СУММЕСЛИ($B$3:$B$8;">60000")-60000*СЧЁТЕСЛИ($B$3:$B$8;">60000"));(B3-40000)*(B3>40000)*$I$2/СУММЕСЛИ(B3:B8;">40000")))
Изменено: Ігор Гончаренко - 20.04.2022 15:51:12
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
я решал такую задачу:
Игорь, вот именно, каждый решает задачу додуманную. Чего хотел ТС - знает только ТС. В результате не в Excel помогаем,  а методику строим.
По вопросам из тем форума, личку не читаю.
 
Ігор Гончаренко, Вы всё поняли верно. Формула вроде бы работает, спасибо вам большое.  Я сегодня ещё её по тестирую и позже отпишусь.  Ещё раз ребята спасибо и извините, что не смог более точно объяснить что именно нужно.  
 
Ігор Гончаренко, Подскажите пожалуйста, а можно как то вашу формулу преобразовать, чтобы 40 тыс перестали быть конечной  отсечкой. Чтобы после 40 тысяч также рассчитывались суммы, а при их нехватке уходило в минус?
 
Ігор Гончаренко, Докрутил формулу под себя, теперь работает как нужно.  Игорь, ещё раз, большое спасибо!
 
так?
Код
=ЕСЛИ(СУММЕСЛИ($B$3:$B$8;">100000")-100000*СЧЁТЕСЛИ($B$3:$B$8;">100000")>=$I$2;(B3-100000)*(B3>100000)*$I$2/(СУММЕСЛИ($B$3:$B$8;">100000")-100000*СЧЁТЕСЛИ($B$3:$B$8;">100000"));ЕСЛИ(СУММЕСЛИ($B$3:$B$8;">60000")-60000*СЧЁТЕСЛИ($B$3:$B$8;">60000")>=$I$2;(B3-60000)*(B3>60000)*$I$2/(СУММЕСЛИ($B$3:$B$8;">60000")-60000*СЧЁТЕСЛИ($B$3:$B$8;">60000"));B3*$I$2/СУММ(B3:B8)))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Да!
Страницы: 1
Наверх