セルに与えられた文字/部分文字列が含まれているかどうかを調べるための組み込み関数はありますか?
区切り文字がないときにエラーをスローすることなく、Left
/Right
/Mid
のようなテキスト関数を条件付きで適用できることを意味します。
これを使ってみてください。
=ISNUMBER(SEARCH("Some Text", A3))
セルA3
にSome Text
が含まれる場合、これはTRUE
を返します。
次の数式は、テキスト "CHECK"がセルC10に表示されるかどうかを決定します。そうでない場合、結果は空白です。もしそうであれば、結果は仕事「CHECK」です。
=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")
IFステートメント内の単一の関数を使用してこれを行いたい人のために、私は使用します
=IF(COUNTIF(A1,"*TEXT*"),TrueValue,FalseValue)
サブストリングTEXTがセルA1にあるかどうかを確認する
[注:TEXTにはアスタリスクが必要です]
この式は私にとって直感的に思えます。
=SUBSTITUTE(A1,"SomeText","") <> A1
"SomeText"がA1に含まれる場合、これはTRUEを返します。
他の回答に記載されているIsNumber/SearchおよびIsError/Findの式は確かに機能しますが、私は常にヘルプを見たりExcelで試したりする必要があることに気付きます。
ExcelのFIND()
関数をチェックしてください。
構文:
FIND( substring, string, [start_position])
部分文字列が見つからない場合は#VALUE!
を返します。
私はRink.Attendant.6の回答が好きです。私は実際には複数の文字列をチェックしたいと思い、それをこのようにしました:
まず状況:住宅建設業者やコミュニティの名前になることができる名前と私は1つのグループとして建築業者をまとめる必要があります。これを行うには、私は単語 "ビルダー"または "建設"などを探しています。
=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")
これは古い質問ですが、Excel 2016以降を使用している場合の解決策は、新しいIFS( condition1, return1 [,condition2, return2] ...)
条件式を使用することで入れ子になったif構造体の必要性を取り除くことができるということです。
この質問の場合の使用方法を視覚的に明確にするためにフォーマットしました。
=IFS(
ISERROR(SEARCH("String1",A1))=FALSE,"Something1",
ISERROR(SEARCH("String2",A1))=FALSE,"Something2",
ISERROR(SEARCH("String3",A1))=FALSE,"Something3"
)
文字列が見つからない場合はSEARCH
name__がエラーを返すので、私はそれをISERROR(...)=FALSE
でラップして真実をチェックしてから必要な値を返します。読みやすさのためにSEARCH
name__がエラーではなく0を返した場合は、それは素晴らしいことですが、残念ながらそれだけで動作します。
もう1つの重要な注意点は、IFS
name__は最初に見つかった一致を返すため、順序付けが重要です。たとえば、上記のSurf, Surfing, Surfs
のように私の文字列がString1,String2,String3
で、私のセルの文字列がSurfing
name__の場合、部分文字列がSurf
name__であるため、2番目の用語ではなく最初の用語で一致します。したがって、共通の分母はリストの最後にある必要があります。私のIFS
name__は、正しく機能するようにSurfing, Surfs, Surf
の順序にする必要があります(この簡単な例では、Surfing
name__とSurfs
name__の入れ替えも機能します)が、Surf
name__は最後にする必要があります。