web-dev-qa-db-ja.com

特定の文字または文字セットのセルを確認してください

Googleスプレッドシートでは、特定のセルに特定の文字が含まれている場合に特定のテキストまたは数字を出力する式を使用したいと思います。

たとえば、=IF(A1="Black";"YES";"NO")を入力し、A1が "Black"に等しい場合、 "YES"を正しく出力します。ただし、=IF(A1="Bla";"YES";"NO")を入力すると、 "NO"が出力されます。私が=IF(A1 CONTAINS "Bla";"YES";"NO")のような何かを言うことができるように私が使うことができるどんな式もあるので、それは "YES"を出力します。

112
user1799724

RegExMatchを使用できます。

=IF(RegExMatch(A1;"Bla");"YES";"NO")
149
flyingjamus

大文字と小文字を区別せず、REGEXMATCHblastをトリガーしてablativeをトリガーしたくない場合があるため、YESを含まないオプションもあります。 OPのように区切り文字としてコンマを使用し、しばらくの間はIF条件を無視します。

最初の@ user1598086の答えに非常に似ています。

=FIND("bla";A1)

大文字と小文字が区別されますが#VALUEが返されます。 NOではなくYESではなく数値(ただし、両方ともそれぞれNO/YESに変更できます)。

=SEARCH("bla";A1)  

大文字と小文字は区別されないため、Blackblackは同じように扱われます。上記のように返します。

前者(後者と同等)がblaが存在するかどうかを示す A1の最初の3文字

=FIND("bla";A1;4)  

blazer, blackには数値を返しますが、#VALUE!にはblazer, blueを返します。

Blaを完全なWordがそれ自身で(つまりスペースの間 - '文章'の始めや終わりにはないときに)見つけるときだけ:

=SEARCH(" Bla ";A1) 

上記のすべての場合の戻り値は数値( "found"、YESが優先)または#VALUE!のいずれかなので、IF式内で#VALUE!をテストするにはISERRORを使用できます。

 =if(iserror(FIND("bla";A1));"NO";"YES")  

regexmatchより長いですが、コンポーネントは簡単に調整できます。

65
pnuts

次の式を使うことができます。

=IF(ISTEXT(REGEXEXTRACT(A1; "Bla")); "Yes";"No")
2
imbond