QUERY関数で指定文字を含む行を抽出する方法を解説する。
Query関数で指定の文字を含む行だけ抽出するためには、「contains」または「like」を活用する。
簡単に説明すると、「contains」は、「like」よりも簡単に使用できる。
一方「like」は「contains」よりも詳細な文字列指定をすることができる。
このへんは、実際に見た実例がわかりやすい!
先に「contains」から紹介する。
contains
containsは、特定の文字列を含む行を抽出することができる。
【公式】
=QUERY(範囲, “where 列 contains ‘文字列A’ AND 列 contains ‘文字列B’ “,true)
下記のスプレッドシートからB列の「打ち合わせ」と記載のあるB列とC列の行を抽出したいとする。
以下のように式を立てる。
上記式の意味は、「セルB2からC列の範囲内で、「打ち合わせ」を含む行を抽出」だ。
like
【公式】
=QUERY(範囲, “where 列 like パターン)
先ほど同様にスプレッドシートB列の「打ち合わせ」と記載のある文字列と予定月を抽出したいとする。
以下のように式を立てる。
上記式の意味は、「セルB2からC列の範囲内で、「打ち合わせ」を含む行を抽出」だ。
以上が、likeの使い方だ。
【likeの使い方4つ】完全一致・前方一致・後方一致・中間一致
likeは、containsよりも詳細な文字列指定ができ、以下の4パターンがある。
- 完全一致(○○と完全に一致した文字列)
- 前方一致(○○で始まる文字列)
- 後方一致(○○で終わる文字列)
- 中間一致(先頭・最後以外に○○を含む文字列)
パターン | 内容 | 式 |
---|---|---|
完全一致 | 「打ち合わせ」と一致 | = ‘打ち合わせ’ |
前方一致 | 「打ち合わせ」で始まる | like ‘打ち合わせ%’ |
後方一致 | 「打ち合わせ」で終わる | like ‘%打ち合わせ’ |
中間一致 | 「打ち合わせ」を含む | like ‘%打ち合わせ%’ |
先ほどの例で使用したのは「後方一致」だ。
まとめ
今回は「contains」、「like」それぞれを用いて、QUERY関数で指定文字を含む行を抽出する方法について解説した。
containsは単純に「○○」を含む行を抽出するのに対して、likeは指定した位置に「○○」が含まれている行を抽出する。
containsの方が式が簡単だが、細かく指定したい場合にはlikeが便利だ。
コメント