QUERY関数のwhere条件で、特定の文字の並び方をした文字列を指定したい場合があると思います。
例えば「”履歴書” ではじまり “書き方” で終わる」という並び方をした文字列を、今回紹介するlikeを使うことで、次のように表現することができます。
=QUERY(範囲,"where C like '履歴書%書き方' ")
この記事では、上記のようなよくある事例とともに、like演算子の使い方を解説していきます。
like演算子の使い方
=QUERY(範囲,"where C like '検索文字列' ")
ワイルドカードと呼ばれる、like演算子で検索する際に使える特殊文字には2種類あります。
- %(パーセント):ゼロ文字または1文字以上
- _(アンダースコア):何か1文字
ワイルドカードをはじめて聞いた方でも理解できるよう、ここからlikeを使った例を紹介していきます。
like演算子で%(ゼロ文字または1文字以上)を使う例
%(パーセント)は、「ゼロ文字または1文字以上」を意味するワイルドカード(特殊文字)です。likeを使った検索のときに、利用することができます。
①%のみ
=QUERY(範囲,"where C like '%' ")
%だけのときは「ゼロ文字または1文字以上」という意味になるため、全ての文字列とマッチして出力されます。
②%文字列
=QUERY(範囲,"where C like '%書き方' ")
「%書き方」の意味は、「先頭から0文字以上の文字が続いて最後は “書き方” で終わる文字列」を意味します。該当するタイトルは最後に「書き方」がつく次の3つになります。
③文字列%文字列
=QUERY(範囲,"where C like '履歴書%書き方' ")
「履歴書%書き方」は、「先頭が “履歴書” ではじまり、次に0文字以上の文字列が続き、末尾が “書き方” で終わる文字列」を意味します。なので「履歴書で始まり書き方で終わる」次の2つのタイトルが出力されます。
like演算子で_(何か1文字)を使う例
_(アンダースコア)は、「何か1文字」を意味するワイルドカード(特殊文字)です。likeを使った検索のときに、利用することができます。
①_のみ
=QUERY(範囲,"where C like '_' ")
「_」は、「1文字だけの文字列」を意味します。各タイトルは2文字以上で、1文字だけのタイトルが存在しないため、何も表示されません。
②_を6こ
=QUERY(範囲,"where C like '______' ")
「______」は、「6文字の文字列」を意味します。「就活ノウハウ」は6文字の文字列のため、出力されます。
③文字列_文字列
=QUERY(範囲,"where C like '就_ノウハウ' ")
「就_ノウハウ」は、「先頭が “就” ではじまり、次に何か1文字が続き、そのあとに “ノウハウ” が続いて終わる文字列」を意味します。これに該当するのは「就活ノウハウ」の文字列だけです。
④文字列_文字列%
=QUERY(範囲,"where C like '検索文字列' ")
「就_ノウ%」は、「先頭が “就” ではじまり、次に何か1文字が続き、次に “ノウ” が続いて、その次は0文字以上が続いて終わる」という意味になります。
Google検索の変遷から見えてくる「Googleがキュレーション化する日」
[/su_note]