Многократная условная проверка Excel, в том числе содержит - PullRequest
0 голосов
/ 18 мая 2018

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

Psuedocode того, что я пытаюсь сделать в ячейке:

if ((A1 == 1 && B1.contains("abc")) || (A1 == 2 && B1.contains("def") || (A1 == 3 && B1.contains("ghi"))
then write("ok")
else write("not ok")

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

Это будет с учетом регистра.Если регистр не учитывается, используйте SEARCH вместо FIND.

=IF(OR(AND(A1=1,IFERROR(FIND("abc",B1)>0,FALSE)),AND(A1=2,IFERROR(FIND("def",B1)>0,FALSE)),AND(A1=3,IFERROR(FIND("ghi",B1)>0,FALSE))),"ok","not ok")

или

=IF(IFERROR(FIND(INDEX({"abc","def","ghi"},$A$1),$B$1),FALSE),"ok","not ok")
0 голосов
/ 18 мая 2018

Вы можете попробовать:

=IF(IFERROR(MATCH(A1,{1,2,3},0)=MATCH(TRUE,ISNUMBER(SEARCH({"abc","def","ghi"},B1)),0),FALSE),"OK","NOT OK")

В качестве формулы массива, которая должна быть подтверждена Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.

Если ваши значения в столбцеА на самом деле числовые 1,2,3, ... тогда вы можете упростить формулу до:

=IF(IFERROR(A1=MATCH(TRUE,ISNUMBER(SEARCH({"abc","def","ghi"},B1)),0),FALSE),"OK","NOT OK")

enter image description here

0 голосов
/ 18 мая 2018

Вот схема:

=IF(OR(AND({conditions}),AND({conditions}),AND({conditions})),"OK","NOT OK")

Содержит ли ячейка текст?https://exceljet.net/formula/cell-contains-specific-text

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