知恵と経験をつなぎ、次のチャレンジへ
スプレッドシートのデータ抽出関数QUERYの使い方を解説!業務で使えるデータ集計スキル上級編①

スプレッドシートのデータ抽出関数QUERYの使い方を解説!業務で使えるデータ集計スキル上級編①

スプレッドシートで大量のデータを扱う際、
「必要な列だけを抽出したい」
「条件を指定して特定のデータを取得したい」
「VLOOKUPやFILTER関数より高度なデータ操作をしたい」
といった場面があると思います。

そんなときに便利なのが QUERY関数 です!
この関数を使えば、 SQLのような操作でデータを自由自在に抽出・加工 できます。

今回は 「QUERY関数の基本」 を解説し、

  • SELECT文で特定の列を抽出
  • WHERE文で条件を指定
  • Col1、Col2などを用いた柔軟な条件設定
    などの使い方を紹介します。

1. QUERY関数の基本構文

excelコピーする編集する=QUERY(範囲, "SQL風のクエリ文", [ヘッダー行])
引数説明
範囲データがあるセル範囲
SQL風のクエリ文SELECTWHERE などの条件を指定
ヘッダー行(省略可)データのヘッダー行の指定(通常省略可)

💡ポイント

  • スプレッドシート内のデータをSQL風の文法で操作 できる。
  • IMPORTRANGEと組み合わせて外部シートのデータにも適用可能

2. SELECT文 – 必要な列だけを抽出

QUERY関数の SELECT文 を使うと、
指定した列だけを取得することができます。

基本構文

excelコピーする編集する=QUERY(範囲, "SELECT 列名")

📌 例:商品データから商品名と価格だけを抽出

商品ID商品名カテゴリ価格
A001ノートPC家電100000
A002スマホ家電80000
A003タブレット家電60000
A004イヤホンアクセサリー12000
excelコピーする編集する=QUERY(A1:D5, "SELECT B, D")

結果

商品名価格
ノートPC100000
スマホ80000
タブレット60000
イヤホン12000

💡 ポイント

  • SELECT B, DB列(商品名)とD列(価格)だけを取得
  • 必要な列だけ抽出することで、シンプルなデータを作成可能

3. WHERE文 – 特定の条件でデータを抽出

QUERY関数の WHERE文 を使うと、
特定の条件に合うデータだけを取得できます。

基本構文

excelコピーする編集する=QUERY(範囲, "SELECT 列名 WHERE 条件")

📌 例:「家電カテゴリの商品」だけを取得

excelコピーする編集する=QUERY(A1:D5, "SELECT B, D WHERE C = '家電'")

結果

商品名価格
ノートPC100000
スマホ80000
タブレット60000

💡 ポイント

  • WHERE C = ‘家電’C列のカテゴリが「家電」のデータだけを取得

4. Col1, Col2 を用いた条件設定

QUERY関数では、列名の代わりに Col1, Col2, Col3… を使うことができます。

📌 例:「価格が50000円以上の商品」だけを取得

excelコピーする編集する=QUERY(A1:D5, "SELECT Col2, Col4 WHERE Col4 >= 50000")

結果

商品名価格
ノートPC100000
スマホ80000
タブレット60000

💡 ポイント

  • Col1 → A列、Col2 → B列、Col3 → C列、Col4 → D列
  • WHERE Col4 >= 50000D列の価格が50000円以上の商品を取得

✅ Col1, Col2を使うメリット

  • 列名(ヘッダー)がない場合も使える
  • データの順番が変わっても関数が壊れない

5. WHERE文の応用 – 複数条件を設定

WHERE文は AND・ORを使って複数の条件を指定可能 です。

📌 例:「家電カテゴリで価格が50000円以上」の商品を取得

excelコピーする編集する=QUERY(A1:D5, "SELECT B, D WHERE C = '家電' AND D >= 50000")

結果

商品名価格
ノートPC100000
スマホ80000
タブレット60000

📌 例:「家電カテゴリまたは価格が50000円以上」の商品を取得

excelコピーする編集する=QUERY(A1:D5, "SELECT B, D WHERE C = '家電' OR D >= 50000")

結果

商品名価格
ノートPC100000
スマホ80000
タブレット60000
イヤホン12000

💡 ポイント

  • AND → 両方の条件を満たすデータだけ取得
  • OR → どちらかの条件を満たすデータを取得

✅ まとめ

クエリ文目的
SELECT指定した列のみ取得=QUERY(A1:D5, "SELECT B, D")
WHERE条件を満たすデータを取得=QUERY(A1:D5, "SELECT B, D WHERE C = '家電'")
WHERE + 比較数値でフィルタリング=QUERY(A1:D5, "SELECT B, D WHERE D >= 50000")
WHERE + AND複数条件を指定=QUERY(A1:D5, "SELECT B, D WHERE C = '家電' AND D >= 50000")
WHERE + ORいずれかの条件を満たすデータを取得=QUERY(A1:D5, "SELECT B, D WHERE C = '家電' OR D >= 50000")
Col1, Col2列名を指定せずに抽出=QUERY(A1:D5, "SELECT Col2, Col4 WHERE Col4 >= 50000")

次回:QUERY関数の応用編!

次回の 「スプレッドシートのデータ抽出関数QUERYの使い方を解説!業務で使えるデータ集計スキル上級編②」 では、

  • 日付の範囲指定
  • LIKEによる部分一致検索
  • ORDER BY(昇順・降順の並べ替え)
  • GROUP BY(SUM・AVG・MIN・MAXなどの集計)
    といった、 より高度なQUERY関数の使い方 を紹介します!

👉 ぜひQUERY関数を活用して、スプレッドシートのデータ抽出を効率化しましょう! 🚀