- ベストアンサー
エクセルで、特定の文字が含まれるとき、値を返す
エクセルで、特定の文字が含まれるとき、値を返す方法が知りたいです。 たとえば、C15のセルに、「赤い」「黄色い」「白い」という文字や それらが合わさったりした「赤、黄色い、白」といった文が入るとします。 その際、「赤」「黄」「白」という文字が一つでも入っていれば 別のセルに「色あり」という文字が表示されるようにしたいです。 (検索条件が「赤」または「黄」または「白」ということです) そのような場合はどのような関数がありますでしょうか。 宜しくお願いします!
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
別のセルに以下の式を入れてみてください。 =IF(ISERR(FIND("赤",C15))*1+ISERR(FIND("黄",C15))*1+ISERR(FIND("白",C15))*1=0,"色あり","")
その他の回答 (4)
- keithin
- ベストアンサー率66% (5278/7941)
=IF(OR(ISNUMBER(FIND({"赤","黄","白"},A1))),"○","") とかでいいです。
- bunjii
- ベストアンサー率43% (3589/8249)
>そのような場合はどのような関数がありますでしょうか。 考え易いものはIF関数とFIND関数およびISERR関数の組み合わせになります。 =IF(ISERR(FIND("赤",C15))*ISERR(FIND("黄",C15))*ISERR(FIND("白",C15)),"","色あり") =IF(AND(ISERR(FIND("赤",C15)),ISERR(FIND("黄",C15)),ISERR(FIND("白",C15))),"","色あり") 上記の数式は論理的に等価になります。 FIND関数でC15セルの文字列に"赤"、"黄"、"白"の文字が含まれるときは位置が戻り、含まれないときはエラーが戻されますので、すべてがエラーのときに""を代入します。 ISERR関数の引数(数式)からエラーが返るとTRUE(数値に直すと1)になり、エラーが起らないときはFALSE(数値に直すと0)になります。 従って、前者は論理式の3つの要素を乗算していますので1つ以上の要素でエラーが起らないときは0(FALSE)となり、"色あり"が代入され、全ての要素がエラーのとき1(TRUE)となり、""が代入されます。 後者は乗算の代わりにAND関数を使って前者と等価の判定にしています。
- dogs_cats
- ベストアンサー率38% (278/717)
下記方法でも可能です。ご参考まで =IF(SUM(COUNTIF(C15,{"*赤*","*黄*","*白*"}))>0,"色あり","")
- mshr1962
- ベストアンサー率39% (7417/18945)
こんな方法もあります。。。 =IF(LEN(C15)=LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C15,"赤",""),"黄",""),"白","")),"","色あり")