Прошу прощения, если название вопроса не говорит само за себя. Вот подробности.

Как я могу установить условия / формулу в MS Excel, если я введу число «250» единиц

Правило калькуляции-1: если юниты от 0 до 100, то цена 5,00
Правило калькуляции 2: если юниты от 101 до 200, то цена 8,00
Правило калькуляции 3: если количество единиц от 201 до 300, цена равна 10.50

Поэтому формула должна рассчитываться так: (100 * 5)+(100 * 8)+(50 * 10.50) = 1825

2 ответа2

1

Предполагая, что ваша "сумма" находится в ячейке A1, тогда ваша формула

=IF(A1<=100;A1*5;100*5+IF(A1<=200;(A1-100)*8;100*8+IF(A1<=300;(A1-200)*10,5;100*10,5)))

Но, как вы видите, есть некоторые постоянные значения, так что вы можете упростить его до

=IF(A1<=100;A1*5;500+IF(A1<=200;(A1-100)*8;800+IF(A1<=300;(A1-200)*10,5;1050)))

Возможно, вам придется заменить ; через , в вашей версии Excel.

0

Подумав немного, я придумал то же решение, что и IQV, но немного расширил его. Может быть, так легче понять. Мне было любопытно по поводу расщепления.

Графическое представление расчета

Это более подробный подход к тому же расчету.

Формула для B3 , B4 и B5 будет иметь вид:

=IF($B$1<=100; $B$1; 100)
=IF($B$1<=200; IF($B1-100 > 0; $B$1-100; 0); 100)
=IF($B$1<=300; IF($B$1-200 > 0; $B$1-200; 0); 100)

Формула для суммы будет простым умножением (=B3*C3+B4*C4+B5*C5).

Вложив эти операторы IF вы избавите себя от необходимости проверять всякий раз, когда одна из сумм будет равна нулю. Очевидным недостатком будет отсутствие определения того, что произойдет, если вы превысите 300 единиц. Таким образом, с обоими подходами вы в конечном итоге отдадите эти единицы бесплатно. Преимущество этого более подробного подхода заключается в том, что он становится легко очевидным, поскольку сумма единиц не будет превышать 300 единиц.

Чтобы изменить это поведение, вам просто нужно изменить формулу B5 чтобы не иметь условия. В моем примере вам нужно изменить его на IF($B$1-200 > 0; $B$1-200; 0)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .