• ベストアンサー

エクセルで、特定の文字が含まれるとき、値を返す

エクセルで、特定の文字が含まれるとき、値を返す方法が知りたいです。 たとえば、C15のセルに、「赤い」「黄色い」「白い」という文字や それらが合わさったりした「赤、黄色い、白」といった文が入るとします。 その際、「赤」「黄」「白」という文字が一つでも入っていれば 別のセルに「色あり」という文字が表示されるようにしたいです。 (検索条件が「赤」または「黄」または「白」ということです) そのような場合はどのような関数がありますでしょうか。 宜しくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.1

別のセルに以下の式を入れてみてください。 =IF(ISERR(FIND("赤",C15))*1+ISERR(FIND("黄",C15))*1+ISERR(FIND("白",C15))*1=0,"色あり","")

その他の回答 (4)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

=IF(OR(ISNUMBER(FIND({"赤","黄","白"},A1))),"○","") とかでいいです。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

>そのような場合はどのような関数がありますでしょうか。 考え易いものは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)
回答No.3

下記方法でも可能です。ご参考まで =IF(SUM(COUNTIF(C15,{"*赤*","*黄*","*白*"}))>0,"色あり","")

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

こんな方法もあります。。。 =IF(LEN(C15)=LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C15,"赤",""),"黄",""),"白","")),"","色あり")

関連するQ&A