Ошибка с формулой, пытающейся использовать IF (И с тремя условиями - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь написать формулу для оценки всех возможных значений в трех ячейках и оценки их в другой.Excel говорит, что есть проблема с моей формулой, но я не могу ее найти.Ваша помощь приветствуется.

Я использую IF (И во всей моей электронной таблице, но только с двумя значениями. Эти формулы принимаются в Excel.

=IF(AND(B2="No",B3="Red",B5="No"),0,
 IF(AND(B2="No",B3="Green",B5="No",2,
 IF(AND(B2="No",B3="Blue",B5="No",3,
 IF(AND(B2="No",B3="Yellow",B5="No",5,5,
 IF(AND(B2="No",B3="Red",B5="Yes"),0,
 IF(AND(B2="No",B3="Green",B5="Yes"),2,
 IF(AND(B2="No",B3="Blue",B5="Yes",3,
 IF(AND(B2="No",B3="Yellow",B5="Yes",5,
 IF(AND(B2="Yes",B3="Red",B5="Yes",0,
 IF(AND(B2="Yes",B3="Green",B5="Yes",1,
 IF(AND(B2="Yes",B3="Blue",B5="Yes",2,
 IF(AND(B2="Yes",B3="Yellow",B5="Yes",5,
 IF(AND(B2="Yes",B3="Red",B5="No",0,
 IF(AND(B2="Yes",B3="Green",B5="No",1,
 IF(AND(B2="Yes",B3="Blue",B5="No",2,
 IF(AND(B2="Yes",B3="Yellow",B5="No",3))))))))))))))))

Excel заявляет: «Возникла проблемас этой формулой ".

Ответы [ 3 ]

2 голосов
/ 02 июля 2019

У вас было 5,5, где у вас должно было быть 5, а где не хватало многих ), чтобы закрыть AND s

=IF(AND(B2="No",B3="Red",B5="No"),0,
 IF(AND(B2="No",B3="Green",B5="No"),2,
 IF(AND(B2="No",B3="Blue",B5="No"),3,
 IF(AND(B2="No",B3="Yellow",B5="No"),5,
 IF(AND(B2="No",B3="Red",B5="Yes"),0,
 IF(AND(B2="No",B3="Green",B5="Yes"),2,
 IF(AND(B2="No",B3="Blue",B5="Yes"),3,
 IF(AND(B2="No",B3="Yellow",B5="Yes"),5,
 IF(AND(B2="Yes",B3="Red",B5="Yes"),0,
 IF(AND(B2="Yes",B3="Green",B5="Yes"),1,
 IF(AND(B2="Yes",B3="Blue",B5="Yes"),2,
 IF(AND(B2="Yes",B3="Yellow",B5="Yes"),5,
 IF(AND(B2="Yes",B3="Red",B5="No"),0,
 IF(AND(B2="Yes",B3="Green",B5="No"),1,
 IF(AND(B2="Yes",B3="Blue",B5="No"),2,
 IF(AND(B2="Yes",B3="Yellow",B5="No"),3,""))))))))))))))))

Но я думаю, что вы можете сделать это сболее простая формула:

=IFERROR(IF(B2 = "No",CHOOSE(MATCH(B3,{"Red","Green","Blue","Yellow"},0),0,2,3,5),IF(B5="Yes",CHOOSE(MATCH(B3,{"Red","Green","Blue","Yellow"},0),0,1,2,5),CHOOSE(MATCH(B3,{"Red","Green","Blue","Yellow"},0),0,1,2,3))),"")
0 голосов
/ 02 июля 2019

Попробуйте:

=IF(B3="Red",0,
 IF(B3="Green",
   IF(B2="Yes",1,
   IF(B2="No",2,NA())),
 IF(B3="Blue",
   IF(B2="Yes",2,
   IF(B2="No",3,NA())),
 IF(B3="Yellow",
   IF(AND(B2="Yes",B5="No"),3,5),
 NA()))))

Надеюсь, это поможет

0 голосов
/ 02 июля 2019

Вы можете поместить свою логику в строковую форму в одну ячейку (скажем, F1):

0NOREDNO 2NOGREENNO 3NOBLUENO 5NOYELLOWNO 0NOREDYES 2NOGREENYES 3NOBLUEYES 5NOYELLOWYES 0YESREDYES 1YESGREENYES 2YESBLUEYES 5YESYELLOWYES 0YESREDNO 1YESGREENNO 2YESBLUENO 3YESYELLOWNO

Тогда ваш код уменьшается до:

=MID(F1, FIND(UPPER(B2&B3&B5),F1)-1, 1)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...