Если ячейка содержит строку

Как назначить значение ячейкам, если он содержит определенную строку?

Например, поля в столбце 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")