「含む」のGoogleスプレッドシートの数式


40

IF値または文字列を含む1つのセル内のアイテムのリストを識別する方法を見つけようとしています。

セルA1にはが含まれていますsites, sheets, docs, slides

私は、セルA1に文字列が含まれている「場合は、」セルB1が1を表示したいですsites

=if(A1 ?????? "sites", 1,0)

??????上記の式内で何を置き換えるか、またはこの式が可能かどうかはわかりません。望ましい結果を達成する方法についてのアイデアは大歓迎です。

回答:


55

REGEXMATCHを使用できます。

=IF(REGEXMATCH(A1, "sites"), 1, 0)

説明すると、引数が文字列の部分文字列である場合にのみ、REGEXMATCHはtrueを返します。


10
を使用regexmatchする方が簡単です:if(regexmatch(A1, "sites"), 1, 0)

1
regexmatchは既にブール値を返すため、「if」は不要です。そのため、「REGEXMATCH(A1、 "sites")」
David

2
ifがあるので、trueをfalseまたは1に変換できます
Aurielle Perlmann

7

=if(search("sites",B2)>0,1,0)

=if(IFERROR(search("sites",B2)>0,0),1,0)

両方とも機能します。エラーが発生した場合、2番目は0を書き込みます。


2
最初の式はSEARCH(search_for, text_to_search, [starting_at])search_for見つからない場合にエラーを返すため、0 を返しません。
ルベン

1

「サイト」という単語が含まれる行の数または平均#を知りたいので、おそらくこれを行っています。列Aに100行のエントリがあると仮定すると、この関数を使用して、「サイト」という単語が含まれている行の数を調べることができます。

=QUERY(A1:A100, "select count(A) where A like '%sites%'")

これは、1と0の列を作成してから、その新しい列を操作するよりもはるかに高速です。


これは、列だけでなくボックスでも機能しますか?
Adam Starrh

うん。代わりにA1:A100あなたにそれを作ることができA1:C100、その後、列A、BおよびCでクエリを記述
ライアンShillington

1

REGEXを使用しないソリューション:

=if(iserror(FIND("sites",B2)),0,1)

文字列が見つからない場合にif答えが返されるため、大文字と小文字の区別とロジックを逆にする必要がありますtrue


これは基本的にこの回答と同じですが、大文字と小文字を区別することを紹介しています。ところで、OPが提供するサンプルデータにはsheetsnotが含まれていSheetsます。
ルベン


0

Ryan Shillingtonが示唆しているように、「サイト」が含まれる範囲内のセルの数を知りたい場合は、以下を試してください。

=COUNTIF(A1:A100;"*sites*") 

*はワイルドカードの概念として機能するため、セル全体と完全に一致するだけでなく、セル内の任意の場所で一致するものを探します。

また、「サイト」の代わりにセル参照を使用してこれを実行しましたが、セル内のテキストにワイルドカードアスタリスクを追加する必要があります。


0

アスタリスクオプションを使用してセル参照が必要な場合は、CONCATENATE関数を使用してアスタリスクを追加できます。

=COUNTIF(A1:A100,CONCATENATE("*",A1,"*"))

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.