Если ячейка содержит строку
Как назначить значение ячейкам, если он содержит определенную строку?
Например, поля в столбце A:
dog11
cat22
cow11
chick11
duck22
cat11
horse22
cat33
Синтаксис в столбце B:
=IF(SEARCH("cat",A1),"cat",IF(SEARCH("22",A1),"22","none"))
Он всегда поднимает первую ячейку TRUE, но падает, когда значение не соответствует true.
Ответы
Ответ 1
SEARCH
не возвращает 0
, если нет совпадения, он возвращает #VALUE!
. Таким образом, вы должны обернуть вызовы SEARCH
с помощью IFERROR
.
Например...
= IF (IFERROR (SEARCH ( "cat", A1), 0), "cat", "none" )
или
= ЕСЛИ (ЕСЛИОШИБКА (ПОИСК ( "кошки", А1), 0), "кошки", ЕСЛИ (IFERROR (SEARCH ( "22", А1), 0), "22", "нет" ))
Здесь IFERROR
возвращает значение из SEARCH
, когда оно работает; данное значение 0
в противном случае.
Ответ 2
Вы можете использовать OR()
для группировки выражений (а также AND()
):
=IF(OR(condition1, condition2), true, false)
=IF(AND(condition1, condition2), true, false)
Итак, если вы хотите проверить "cat" и "22":
=IF(AND(SEARCH("cat",a1),SEARCH("22",a1)),"cat and 22","none")