【スプレッドシート】Query関数のstarts with/ends withの使い方と応用例4つ

GoogleスプレッドシートのQuery関数で、行を取り出すときに複雑な指定ができる条件に「starts wiith」と「ends with」があります。starts with(ends with)は指定した文字列で始まる(終わる)行を表示する指定です。

このページでは、starts with とends withの基本的な使い方と、応用例を4つ紹介します。使い方を理解して、Googleスプレッドシートで簡単に情報整理を行いましょう。

Query関数のstarts with/ends withの基本的な使い方

GoogleスプレッドシートQuery関数のstarts withを使う基本形を紹介します。次のstarts withは「指定した行で、指定した文字列で始まる行を表示」という指示になります。

=QUERY(範囲, "where 列 starts with '文字列' ")

「A11:D17の範囲の中で、B列が’履歴書’で始まる行を表示せよ」という指示を書いたものが次のQuery関数です。

=QUERY(A11:D17, "where B starts with '履歴書' ",true)

下記のデータであれば「’履歴書’で始まる記事タイトルの行を表示せよ」という意味になります。

query関数でstartswithの使い方解説図

starts withをそのままends withに置き換えるだけで「指定した文字列で終わる行を表示せよ」という意味に変わります。Query関数は次のようになります。

=QUERY(範囲, "where 列 ends with '文字列' ")

「A11:D17の範囲の中で、B列が’書き方’で終わる行を表示せよ」という指示を書いたものが次のQuery関数です。

=QUERY(A11:D17, "where B ends with '書き方' ",true)

query関数でendswithの使い方

Query関数のstarts with/ends withの例4つ

基本的なstarts with とends withの使い方がわかったところで、次は応用する方法お学びましょう。

①最初に指定した文字列を含まない行を表示するstarts withの例

starts withのQuery関数で、指定する列の前にnotを入れることで、「指定した文字列で始まらない行を表示」という指示になります。

=QUERY(範囲, "where not 列 starts with '文字列' ")

「A11:D17の範囲で、B列が’履歴書’で始まらない行を表示せよ」という指示のQuery関数は次のようになります。

=QUERY(A11:D17,"where not B starts with '履歴書' ",true)

下のデータの例だと、記事タイトルの最初が「履歴書」で始まらない行を表示しています。

query関数のnot starts withの使い方

②最後に指定した文字列を含まないends withの例

ends withのQuery関数で、指定する列の前にnotを入れることで、「指定した文字列で終わらない行を表示」という指示になります。

=QUERY(範囲, "where not 列 ends with '文字列' ")

「A11:D17の範囲で、B列が’書き方’で終わらない行を表示せよ」という指示のQuery関数は次のようになります。

=QUERY(A11:D17,"where not B ends with '書き方' ",true)

下のデータの例だと、記事タイトルの最後が「書き方」で終わらない行を表示しています。

query関数のnot ends withの使い方

③starts with と ends withを同時に使う例

starts withとends withをQuery関数内で併用することもできます。2つの間にandを入れることで条件を増やせます。

=QUERY(範囲, "where 列 starts with '文字列' and 列 ends with '文字列' ")

「A11:D17の範囲で、B列が’履歴書’で始まり、’書き方’で終わる行を表示せよ」という指示のQuery関数は次のようになります。

=QUERY(A11:D17,"where B starts with '履歴書' and B ends with '書き方' ")

下のデータの例だと、記事タイトルの最初が「履歴書」ではじまり、最後が「書き方」で終わる行を表示しています。

query関数のstartswithとendswithを併用

④contains オプションを併用するends withの例

starts withが指定した文字列で始まる条件、ends withが指定した文字列で終わる条件なのに対して、指定した文字列を含む条件「contains」があります。containsはstarts withやends withと併用できます。

=QUERY(範囲, "where 列 contains '文字列' and 列 ends with '文字列' ")

「A11:D17の範囲で、B列が’履歴書’を含んで、’書き方’で終わる行を表示せよ」という指示のQuery関数は次のようになります。

=QUERY(A11:D17,"where B contains '履歴書' and B ends with '書き方' ")

下のデータの例だと、記事タイトルに「履歴書」を含んで、最後が「書き方」で終わる行を表示しています。

query関数のcontainsとendswithを併用

QUERY関数の使い方」まとめ
QUERY関数の使い方使用頻度使用例
オプションOrder byで昇順・降順を指定する★★QUERY("範囲" "order by 列 asc")
オプションgroup byで同じ値をグルーピングして集計する★★★QUERY(範囲,"select 列A, 集計関数(列B) group by 列A")
オプションpivotを使って、group byをさらにグルーピングして表示するQUERY(範囲, "select 列A, 集計関数(列A) where group by 列A pivot 列B")
オプションlabelを使って、出力される列のラベルを変更するQUERY(範囲, "label 列 '名前' ")
オプションformatを使って、出力される値の表示形式を変更するQUERY(範囲, "format 列 '表示形式' ")
オプションlimitを使って、表示する行数に制限をかけるQUERY(範囲, "limit 数")
オプションoffsetを使って表示データを上からスキップする方法QUERY(範囲, "offset 数")
オプションoptionsを使う
演算子containsを使って、指定文字列を含む行を表示する★★QUERY(範囲, "where 列 contains '検索文字列' "
演算子starts withを使って、行の先頭文字列に条件を指定するQUERY(範囲, "where 列 starts with '検索文字列' "
演算子ends withを使って、行の後尾文字列に条件を指定するQUERY(範囲, "where 列 ends with '検索文字列' "
演算子likeで複雑な条件を指定するQUERY(範囲,"where 列 like '検索文字列' ")
演算子★★★QUERY(範囲,"WHERE 列 matches '正規表現' ")
テクニックwhereの条件で空白を指定・除外する★★QUERY(範囲, "where 列 is not null")
テクニックQUERY関数にSUM関数を使う★★SUM(QUERY(範囲, "where 条件")
テクニックwhereの条件に日付を指定する★★★QUERY(範囲,"where 列 = date '"& TEXT(セル,"YYYY-MM-DD") &"'")
テクニックQUERY関数内でimportrange関数を使って、別シートを参照する★★★QUERY(importrange(シートID,参照範囲), "where 条件")
テクニック複数範囲・複数シートを結合する★★QUERY({IMPORTRANGE(シートURL,シート範囲);IMPORTRANGE(シートURL,シート範囲)},"WHERE 条件")
テクニックwhereの条件を複数指定する★★★QUERY("範囲", "where 条件A or 条件B and 条件C")
[su_note note_color="#00BFFF" text_color="#ffffff"] 人気の記事

icon-check-circle Google検索の変遷から見えてくる「Googleがキュレーション化する日」
[/su_note]
タイトルとURLをコピーしました