Что не так с моей формулой

Я работаю над формулой EXCEL и застрял.

=If(B10<4, B10*0, If(B10>3 AND B10<8, B10*1, B10*2)))

Я продолжаю получать сообщение об ошибке. Может кто-нибудь сказать мне, что с ним не так.

Я пытаюсь сказать:

  • Если B10 меньше 4, умножьте значение B10 на ноль.
  • Если B10 находится в диапазоне от 4 до 7, умножьте значение B10 на 1.
  • В противном случае умножьте значение B10 на 2.

person kf7ebx    schedule 06.02.2018    source источник
comment
похоже на =B10*INT(B10/4), если диапазон B10 от 0 до 11   -  person Slai    schedule 07.02.2018
comment
@slai хорошо ... Пока B10 не превысит 11. Это должно позаботиться об этом =B10*MIN(INT(B10/4),2)   -  person Scott Craner    schedule 07.02.2018


Ответы (3)


И AND(condition1,Conditon2) не condition1 AND Condtion2

=If(B10<4, B10*0, If(AND(B10>3, B10<8), B10*1, B10*2))

При этом вам вообще не нужно AND:

=If(B10<4, B10*0, If(B10<8, B10*1, B10*2)))

Второй if сработает, только если B10>= 4, поэтому B10>3 не нужен.


А поскольку все, что умножается на 0, равно 0, вам не нужен B10*0. И поскольку все, что умножается на 1, само по себе, вам не нужен *1

=If(B10<4, 0, If(B10<8, B10, B10*2)))
  • Кредит @BruceWayne.
person Scott Craner    schedule 06.02.2018
comment
Предполагая, что OP хочет, чтобы B10*0 все еще был там, а не просто делал 0, можете ли вы придумать практическую причину для этого? Я мог подумать, что они хотят, чтобы B10*1 превратилось в число, верно? Или это тоже можно сократить до B10 без каких-либо эффектов? - person BruceWayne; 07.02.2018

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

=If(B10<4, B10*0, If(AND(B10>3, B10<8), B10, B10*2)))

Эта формула берет оператор and и помещает его во второй оператор If, проверяя, является ли ячейка B10 больше или равной 4, а затем проверяет, является ли ячейка B10 меньше 8 или больше 3.

person Ben Jackson    schedule 06.02.2018
comment
гм...... Разве это не то, что я ответил почти 12 минут назад. Кроме того, у вас все еще есть слишком много ) - person Scott Craner; 07.02.2018
comment
Я не видел твоего, я уже печатал свое, когда твое было отправлено. Нет обновления, извините. - person Ben Jackson; 07.02.2018

Можно сократить до =B10*((B10>=4)+(B10>=8))

person Slai    schedule 06.02.2018
comment
извините, не могу снова проголосовать, но это лучший ответ. - person Scott Craner; 07.02.2018
comment
спасибо @СкоттКранер. Я чувствую, что эта версия может быть еще более запутанной, но я думаю, это хорошая возможность для обучения. - person Slai; 07.02.2018