私はGoogleスプレッドシートの基本的なユーザーですが、新しい数式を作成するためのサポートが必要です。特定の情報を別のシートに返すように、ワークシートをフィルタリングしようとしています。
作成したフィルターは機能していますが、希望どおりのフィルターではありません。私が言及している列には、次のような単語があります。
また、セル内に次のような2つの単語がある場合があります。
,
私が作成した式は、単一の単語を認識します。ただし、複数の単語を持つセルに属する単語は持ち込まれません。
私が使用している式の例は次のとおりです。
=filter('Form responses'!A:A,'Form responses'!I:I="Solar")
複数の単語もキャプチャするように更新するにはどうすればよいですか?
ありがとうございました! :)
OPの編集 をたどると、状況がかなり明確になります。
=FILTER('Form responses'!A:A, REGEXMATCH('Form responses'!I:I, "Solar"))
追加のヒントOR
を表すFILTER関数で_|
_(パイプ記号)を使用すると、式は次のようになります。
=FILTER('Form responses'!A:A, REGEXMATCH('Form responses'!I:I, "Solar|Energy Comparison"))
ただし、最初の条件(Solar
)にはすでにWord Solar
が含まれるすべてのテキストが含まれているため、実際にその必要はありません。
=QUERY('Form responses'!A:I, "select A where I matches '.\bSolar\b.' ",0)
以前と同様に、_|
_(パイプ)を使用する必要はありません
=QUERY('Form responses'!A:I, "select A where I matches '.\bSolar\b.|.\bEnergy\b.' ",0)
注意:次の提供された式によって与えられる結果は、フォームを作成した方法に大きく依存します。
何らかの理由でうまくいかない場合は、-他の人が言及したようにダミーデータを含むテストスプレッドシートへのリンクを共有してください(マークのジョン、ブラウンのグリーンの氏)。
検索に大文字と小文字を区別しない正規表現(regex)を使用するクエリ式は、必要な結果を提供します。
_=QUERY('Form responses'!A2:C200, ""select * where lower(A) matches
'.\bsolar\b.|.\benergy\b.'")
_
簡単な説明(クエリが「言う」もの)
スプレッドシートの_2
_(_Form responses
_)の列A
、行_'Form responses'!A2:C200
_からデータが始まると想定
範囲_A2:C200
_を選択し、列A
内の検索で、大文字と小文字を区別しない単語solar
またはSOLAR
またはsOlaR
またはenergy
またはEnergy
などに一致する結果が見つかれば、すべての列を返します。文字はそれらの前または後にあります。
*
_:すべて(範囲内のすべての列)lower(A)
:文字の大文字と小文字を区別しません.*
_:_.
_任意の文字、_*
_任意の回数\b
_:単語の境界(subsolar
またはsolarized
が一致しないようにします)|
_:(pipe)or