2012-08-08 8 views
48

ネイバーに特定の文字列が含まれている場合、どのように値をセルに割り当てることができますか?例えばセルに文字列が含まれている場合

、列A内のフィールド:

dog11 
    cat22 
    cow11 
    chick11 
    duck22 
    cat11 
    horse22 
    cat33 

列Bの構文は次のようになります

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

それは常に最初の真のセルをピックアップするが、値がない場合に下がります本当。

答えて

102

SEARCHはしていません0が一致する場合は、#VALUE!を返します。だから、SEARCHへのコールをIFERRORにラップする必要があります。

例えば

...

= IF(IFERROR(SEARCH( "CAT"、A1)、0)、 "猫"、 "なし")

又は

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

ここで、 IFERRORは、動作するときにSEARCHから値を返します。指定された値は0です。

+1

答えをありがとうございます。 MSはこれを処理するための短いメソッド、例えば "CONTAINS"(真偽を直接返す)や "INDEX"( "-1")や実際の位置などを返すとは信じられません。 – AFract

4

あなたはグループ式(同様にAND())にOR()を使用することができます。

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

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

ですから、 "猫" と "22" をテストしたい場合:

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

こんにちは、ありがたいですが、ここでは2つの異なる結果が得られることを期待しています。文字列に "cat"が含まれている場合、 "22"が含まれているときに "cat"と言いたいと思います.22としたいと思います。実際の例では重複はありません。ありがとう – Csongor

+0

あなたが連結しない限り、値が1である限り、短絡を続けます。例えば(SEARCH( "22"、a1)、 "22"、 "))' –

関連する問題