【スプレッドシート|QUERY関数】今すぐコピペで使えるテンプレ集

関数教室

これを見てくれたバックオフィスの方が煩雑な管理業務を自動化することで、「今日残業せずに帰れるように」「創造的な仕事にフォーカスして価値を生み出せるように」と思い、まとめ記事を書きました。

もし皆さんの会社がスプレッドシートを導入していたら、これから紹介するQUERY関数あらゆる手作業を自動化することが出来ます。

詳しい内容は各記事で解説していますが、

とにかく今すぐに使いたいんだ!!!

という時間のない方のためにコピペで問題解決できるようにしています。

読売ジャイアンツの2020年データを例に進めていきますが、在籍している企業の情報に置き換えて考えて頂ければと思います。

読売ジャイアンツの選手データ
プロ野球データFreak2020年データより
  • 選手名→従業員名
  • 守備→所属
  • 年数→入社年次
    などなど…

なお、QUERY関数構造がまだよく理解できていない場合には図解も用意しているので、

アルファベットでわけわからん!!!

という場合は参考にしてみて下さい。

QUERY関数のwhere句の中で、「or」をはさむことによって条件式を区分できることを表した図
「or」をはさむことによって条件式を区分できる

それでは、難易度の低いものから順に掲載していくので、数式コピペしてどんどん使っていきましょう!

【補足】シートに関数をコピーする方法
  • 貼り付けたいセルにカーソルを合わせて「fx」欄に貼り付け
    • キーボード「F2」ボタン(セル編集)を押してから貼り付けでも可
スプレッドシートに関数をコピペするには、対象セルにカーソルを合わせて「fx」欄に貼り付けることを説明したキャプチャ

【基本形】1つの条件で抽出

条件一致(〜と一致するもの)

QUERY関数の参照先データベース
参照先データベース

データベースから「投手」だけを抜き出し、項目を守備選手名年俸(推定)の順番で並べたい時は、以下のようになります。

スプレッドシートでQUERY関数を使用して「投手」だけを抜き出し、項目を守備・選手名・年俸(推定)の順番で並べたキャプチャ

以下の文字列をコピーして使用して下さい。(緑文字を置き換え)

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列='検索条件'",見出し行番号)

Copy

  • 前半の赤下線部分で参照先を指定
    • シートとセルの範囲を指定するだけ(VLOOKUP等と同様)
  • 後半の黄下線部分で条件を指定
    • select指定
      • 「▲▲と■■の項目だけ持ってきたい!」
        • 今回のケースでは、[D列]守備・[C列]選手名・[M列]年俸(推定)
          • 列は指定した順番で抽出される(前後してもOK)
      • select*にすると、前半の赤下線部分で指定した全ての列を抽出できる
      • 始まり終わりに「"(ダブルコーテーション)」をつける 忘れがち!
    • where指定
      • 「●●の人たちだけを抜き出したい!」
        • 今回のケースでは、[D列]守備=投手
      • 検索条件(文字)の始まり終わりに「'(シングルコーテーション)」をつける 忘れがち!
  • 見出し行番号は省略可
    • 参照先データの内容に基づいて推測される
      • 先程の「投手」を抽出した例では、見出し行番号「2」になるが、基本的には省略しても問題ない
QUERY関数の参照先データ
参照先データ
スプレッドシートでQUERY関数を使用して「投手」だけを抜き出し、項目を守備・選手名・年俸(推定)の順番で並べたキャプチャ
見出し行番号は「2」になるが、省略しても正しく見出しが引用されている

条件不一致(〜以外のもの全て)

QUERY関数の参照先データベース
参照先データベース

先程とは反対に、「野手(投手以外)」だけを抜き出し、項目を守備選手名年俸(推定)の順番で並べたい時は、以下のようになります。

「<>(不等号)」を使用する場合

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列①<>'検索条件①'")

Copy

「not(文否定)」を使用する場合

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where not 検索列①='検索条件①'")

Copy

QUERY関数の基本「条件の一致・不一致」による抽出について、詳しい解説はこちらをご覧下さい

【and/or】複数の条件で抽出

条件一致(当てはまるもの全て)

and(かつ)

QUERY関数の参照先データベース
参照先データベース

「北海道出身の投手(守備が「投手」かつ出身地が「北海道」の選手)を抜き出したい時は、以下のようになります。

or(または)

QUERY関数の参照先データベース
参照先データベース

「東京・神奈川出身の投手(守備が「投手」かつ出身が「東京」または「神奈川」の選手)」を抜き出したい時は、以下のようになります。

スプレッドシートでQUERY関数を使用して、守備が「投手」かつ出身が「東京」または「神奈川」の選手を抜き出したキャプチャ

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列①='検索条件①' and 検索列②='検索条件②' or 検索列①='検索条件①' and 検索列②='検索条件③'")

Copy

条件不一致(当てはまらないもの全て)

and(かつ)[否定]

QUERY関数の参照先データベース
参照先データベース

「北海道出身ではない投手」を抜き出したい時は、以下のようになります。

スプレッドシートでQUERY関数を使用して、北海道出身ではない投手を抜き出したキャプチャ

or(または)[否定]

QUERY関数の参照先データベース
参照先データベース

「野手のうち、高卒ルーキー(1年目・19歳)と在籍2年目以上(※)を抜き出したい時は、以下のようになります。
※1年目のうち大卒や外国人選手を除くという意図

スプレッドシートでQUERY関数を使用して、野手のうち、高卒ルーキー(1年目・19歳)と在籍2年目以上を抜き出したキャプチャ

【like+%】条件の部分一致で抽出

基本的な使い方として、数式内での条件指定を紹介しています。

部分一致の条件をセル参照したい場合は、こちらをご覧下さい

部分的な条件一致(含むもの全て)

QUERY関数の参照先データベース
参照先データベース

「左投げの投手」を抜き出したい時は、以下のようになります。(補足:K列利き腕の情報はあるが、投打が1つのセルにまとめられている)

スプレッドシートでQUERY関数を使用して、「左投げ」の「投手」を抜き出したキャプチャ

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列①='検索条件①' and 検索列② like '%検索条件②%'")

Copy

  • %(後に%)
    • 〜から始まる文字列
  • %〜(前に%)
    • 〜で終わる文字列
  • %%(前後に%)
    • 〜を含む文字列 おすすめ

部分的な条件不一致(含まないもの全て)

QUERY関数の参照先データベース
参照先データベース

「投手と捕手」消去法で抜き出したい時は、以下のようになります。

スプレッドシートでQUERY関数を使用して、「投手と捕手」を消去法で抜き出したキャプチャ

複数条件で絞り込む「or」「and」 部分一致でキーワード検索する「like」について、詳しい解説はこちらをご覧下さい

数値範囲で条件指定

QUERY関数の参照先データベース
参照先データベース

「在籍年数10年以下の選手」を抜き出したい時は、以下のようになります。

スプレッドシートでQUERY関数を使用して、在籍年数10年以下の選手を抜き出したキャプチャ


=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列<=検索値")

Copy
  • >(〜より大きい)
  • <(〜より小さい)
  • >=(〜以上)
  • <=(〜以下)

【order by】数値で並び替え

【desc】降順

QUERY関数の参照先データベース
参照先データベース

「在籍年数10年以下の選手」を抜き出して「ベテラン順(年数が長い順」に並び替えたい時は、以下のようになります。

スプレッドシートでQUERY関数を使用して、「在籍年数10年以下の選手」を「ベテラン順(年数が長い順)」に並び替えたキャプチャ

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列<=検索値 order by 検索列 desc")

Copy

【asc】昇順

QUERY関数の参照先データベース
参照先データベース

「在籍年数10年以下の選手」を抜き出して「若手順(年数が短い順」に並び替えたい時は、以下のようになります。(空欄を除外するために「not 列 is null」を使用)

スプレッドシートでQUERY関数を使用して、「在籍年数10年以下の選手」を「若手順(年数が短い順)」に空白セルを除いて並び替えたキャプチャ

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列<=検索値 and not 検索列 is null  order by 検索列 asc")

Copy

複数条件による並び替え

QUERY関数の参照先データベース
参照先データベース

「在籍年数10年以下の選手」を抜き出して「①年数(数値)を昇順、②守備(文字列)を降順」に並び替えたい時は、以下のようになります。

スプレッドシートでQUERY関数を使用して、「在籍年数10年以下の選手」を「①年数(数値)を昇順、②守備(文字列)を降順」で空白セルを除いて並び替えたキャプチャ
並び替え条件は年数(D列)昇順・守備(G列)降順

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列<=検索値 and not 検索列① is null  order by 検索列① asc,検索列② desc")

Copy

数値セル条件指定並び替え「order by」空欄「null」除外方法ついて、詳しい解説はこちらをご覧下さい

【date】日付指定の方法

QUERY関数日付指定する際のルールは以下の通りです。

  • date '指定する日付'
    • 日付として読み込むために、「'」で文字列にしてから、頭に「date」をつける
    • 数式内で指定する日付形式は「YYYY-MM-DD
      • それぞれ「-」で区切る
      • 日本語にすると「年-月-日」
        • 例:2021-5-15

なお、日付条件をセル参照したい場合は、こちらをご覧下さい

指定した日付以降・以前

読売ジャイアンツの選手データ
参照先データベース

2000年以降に生まれた選手」を抜き出す場合、以下のようになります。

スプレッドシートでQUERY関数を使用して、2000年以降に生まれた選手を抜き出したキャプチャ

以下の文字列をコピーして使用して下さい。(緑文字を置き換え)

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列>=date'YYYY-MM-DD'")

Copy
  • >(〜より後)
  • <(〜より前)
  • >=(〜以降)
  • <=(〜以前)

【not】一部を除いた期間

読売ジャイアンツの選手データ
参照先データベース

2000年以降に生まれた選手」を消去法で抜き出す場合、以下のようになります。

スプレッドシートでQUERY関数を使用して、2000年以降に生まれた選手を消去法で抜き出したキャプチャ

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where not 検索列<date'YYYY-MM-DD'")

Copy

【order by】日付による並び替え

読売ジャイアンツの選手データ
参照先データベース

2000年以降に生まれた選手」を「生まれ順(生年月日が早い順)」に並び替えると、以下のようになります。

スプレッドシートでQUERY関数を使用して、「2000年以降に生まれた選手」を「生まれ順(生年月日が早い順)」に並び替えたキャプチャ

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列>=date'YYYY-MM-DD' order by 検索列 asc")

Copy
  • order by 列(指定した列で並び替え)
    • asc(昇順で)
    • desc(降順で)

【and】指定した期間「いつからいつまで」

読売ジャイアンツの選手データ
参照先データベース

2000年に生まれた選手」を抜き出して「生まれ順(生年月日が早い順)」に並び替えると、以下のようになります。

スプレッドシートでQUERY関数を使用して、「2000年に生まれた選手」を抜き出して「生まれ順(生年月日が早い順)」に並び替えたキャプチャ

=query('シート名'!$この列から:$この列まで,"select 列①,列②,列③ where 検索列>=date'YYYY-MM-DD' and 検索列<date'yyyy-mm-dd' order by 検索列 asc")

Copy
  • 特定の月を期間指定する場合は「検索列>=当月初 and 検索列<翌月初
    • <翌月初」にすれば、自動的に「前月末日まで」が指定される
      • <=当月」にすると、月毎に日付を修正する手間が発生する

日付指定の方法ついて、詳しい解説はこちらをご覧下さい

以上、QUERY関数の条件指定について超効率重視で紹介しました。

参照範囲の指定方法に関するまとめは、こちらをご覧下さい。

タイトルとURLをコピーしました