Csongor
Csongor

Reputation: 593

IF a cell contains a string

How can I assign a value to cells if it's neighbour contains a specific string?

For example, fields in column A:

    dog11
    cat22
    cow11
    chick11
    duck22
    cat11
    horse22
    cat33

The syntax in column B would be:

=IF(SEARCH("cat",A1),"cat",IF(SEARCH("22",A1),"22","none"))

It always picks up the first TRUE cell, but drops when the value is not true.

Upvotes: 49

Views: 241995

Answers (3)

vstepaniuk
vstepaniuk

Reputation: 868

=IFS(COUNTIF(A1,"*cats*"),"cats",COUNTIF(A1,"*22*"),"22",TRUE,"none")

Upvotes: 0

shipr
shipr

Reputation: 2839

SEARCH does not return 0 if there is no match, it returns #VALUE!. So you have to wrap calls to SEARCH with IFERROR.

For example...

=IF(IFERROR(SEARCH("cat", A1), 0), "cat", "none")

or

=IF(IFERROR(SEARCH("cat",A1),0),"cat",IF(IFERROR(SEARCH("22",A1),0),"22","none"))

Here, IFERROR returns the value from SEARCH when it works; the given value of 0 otherwise.

Upvotes: 104

Brad Christie
Brad Christie

Reputation: 101594

You can use OR() to group expressions (as well as AND()):

=IF(OR(condition1, condition2), true, false)

=IF(AND(condition1, condition2), true, false)

So if you wanted to test for "cat" and "22":

=IF(AND(SEARCH("cat",a1),SEARCH("22",a1)),"cat and 22","none")

Upvotes: 4

Related Questions