Вопрос по excel – Вложенные операторы IF в формуле Excel

1

Итак, предисловие, я полный новичок в этом бизнесе Excel. Я нашел похожие примеры в Google, как это сделать, поэтому я не думаю, что я слишком далек:

=IF( AND(D6=FALSE, OR(ISBLANK(B10),B10=0) ),IF( AND(D6=TRUE,B10>=1)," ","Enter number of components"),"fail")

По сути, первый блок IF оценивает содержимое выражения AND. Если это условие выполнено, я хочу оценить второй блок IF (который выдает ошибку в ячейку в случае сбоя условия).

Заранее спасибо за вашу помощь :)

Можете ли вы набросать описание (словами) того, каким должно быть содержимое ячейки, в зависимости от значений в ячейках D6 и B10? e.James
С примерами! Попробуйте удалить весь вопрос и начать снова. Все ответы здесь основаны на догадках относительно того, что вы хотите. John Machin

Ваш Ответ

6   ответов
1

чтобы прояснить, что происходит в формуле. Может быть, это поможет вам собрать воедино работу операторов IF.

if (D6 is false & B10 is blank)
     then if (D6 is true & B10 >= 1)
          then "" THIS WILL NEVER HAPPEN
          else "Enter number of components"
else "fail"
-1

=IF( OR( AND(D6=TRUE,  OR(ISBLANK(B10),B10=0)), AND(D6=FALSE, OR(B10>=1))), "Selection Invalid","")

Похоже, что попытка вложить второй IF в «THEN»; Блок из первых, ЕСЛИ сделал Excel злой. Выше работает, спасибо за ответы!

Вложение IF в пределах «THEN»; Блок в порядке. IIRC, Excel (по крайней мере, до 2003 года) допускает до семи уровней вложенности. Так что это не могло быть вашей проблемой. Кроме того, последнее «ИЛИ» функция не нужна: вычисление ИЛИ только с одним аргументом такое же, как и просто оценка аргумента. Я не одобряю ваш ответ, потому что, честно говоря, мне кажется, что вы не знаете, что он делает или почему он работает.
0

if D6 = false AND (isblank(B10) OR B10 = 0)
  if D6 = true AND B10 >= 1
    put " "
  else
    put "Enter number of components"
else
  put "fail"

Одна проблема, которую вы обнаружите, состоит в том, что каждый раз, когда вы вводите внутренний оператор IF, D6 равен FALSE. Это означает, что D6 = TRUE всегда приводит к ложному результату, поэтому второе выражение IF всегда не выполняется. Другими словами, ваш код эквивалентен:

=IF(AND(D6=TRUE, OR(ISBLANK(B10), B10=0)), "Enter number of components", "fail")

Разве это не то, что вы хотите?

это очень близко к моему предыдущему ответу
0

=IF(OR(ISBLANK(B10),B10=0),"Enter number of components",IF(B10<1,"Fail",""))

Если я правильно понимаю, вы хотите:

Display "Enter number of components" when cell B10 is empty or zero If B10 has a negative value, display "Fail" In all other cases, display nothing ("")

The statement above echoes that same logic.

2

вы сначала оцениваете, если D6 = FALSE, когда это происходит, вы затем пытаетесь оценить, если D6 = TRUE. Что ж, по первой оценке вы уже знаете, что это неверно, поэтому ваша логика ошибочна.

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

=IF( AND(D6=FALSE, OR(ISBLANK(B10),B10=0) ), "Enter number of components", "Fail")
ISBLANK("") будетFALSE Так как ячейка, содержащая формулу, никогда не будет считатьсяBLANK - & GT; лучше использоватьLEN()=0... однако: просто для удовольствия без и / или=IF((D6=FALSE)*((LEN(B10)=0)+(B10=0)), "Enter number of components", "Fail")
1

вы должны попытаться разбить его на более мелкие функции в каждой ячейке. Хорошим кандидатом было бы переместить AND в свою ячейку, а затем использовать это в качестве первого аргумента AND. Я не уверен, что в результате вы можете получить IF, поэтому попробуйте установить значения value_if_true и value_if_false для других ячеек и выполнить там отдельные вычисления.

Похожие вопросы