スプレッドシートで大量のデータを扱う際、
✅ 「必要な列だけを抽出したい」
✅ 「条件を指定して特定のデータを取得したい」
✅ 「VLOOKUPやFILTER関数より高度なデータ操作をしたい」
といった場面があると思います。
そんなときに便利なのが QUERY関数 です!
この関数を使えば、 SQLのような操作でデータを自由自在に抽出・加工 できます。
今回は 「QUERY関数の基本」 を解説し、
- SELECT文で特定の列を抽出
- WHERE文で条件を指定
- Col1、Col2などを用いた柔軟な条件設定
などの使い方を紹介します。
1. QUERY関数の基本構文
excelコピーする編集する=QUERY(範囲, "SQL風のクエリ文", [ヘッダー行])
引数 | 説明 |
---|---|
範囲 | データがあるセル範囲 |
SQL風のクエリ文 | SELECT 、WHERE などの条件を指定 |
ヘッダー行(省略可) | データのヘッダー行の指定(通常省略可) |
💡ポイント
- スプレッドシート内のデータを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")
結果
商品名 | 価格 |
---|---|
ノートPC | 100000 |
スマホ | 80000 |
タブレット | 60000 |
イヤホン | 12000 |
💡 ポイント
- SELECT B, D → B列(商品名)とD列(価格)だけを取得。
- 必要な列だけ抽出することで、シンプルなデータを作成可能。
3. WHERE文 – 特定の条件でデータを抽出
QUERY関数の WHERE文 を使うと、
特定の条件に合うデータだけを取得できます。
基本構文
excelコピーする編集する=QUERY(範囲, "SELECT 列名 WHERE 条件")
📌 例:「家電カテゴリの商品」だけを取得
excelコピーする編集する=QUERY(A1:D5, "SELECT B, D WHERE C = '家電'")
結果
商品名 | 価格 |
---|---|
ノートPC | 100000 |
スマホ | 80000 |
タブレット | 60000 |
💡 ポイント
- WHERE C = ‘家電’ → C列のカテゴリが「家電」のデータだけを取得。
4. Col1, Col2 を用いた条件設定
QUERY関数では、列名の代わりに Col1, Col2, Col3… を使うことができます。
📌 例:「価格が50000円以上の商品」だけを取得
excelコピーする編集する=QUERY(A1:D5, "SELECT Col2, Col4 WHERE Col4 >= 50000")
結果
商品名 | 価格 |
---|---|
ノートPC | 100000 |
スマホ | 80000 |
タブレット | 60000 |
💡 ポイント
- Col1 → A列、Col2 → B列、Col3 → C列、Col4 → D列
WHERE Col4 >= 50000
→ D列の価格が50000円以上の商品を取得
✅ Col1, Col2を使うメリット
- 列名(ヘッダー)がない場合も使える。
- データの順番が変わっても関数が壊れない。
5. WHERE文の応用 – 複数条件を設定
WHERE文は AND・ORを使って複数の条件を指定可能 です。
📌 例:「家電カテゴリで価格が50000円以上」の商品を取得
excelコピーする編集する=QUERY(A1:D5, "SELECT B, D WHERE C = '家電' AND D >= 50000")
結果
商品名 | 価格 |
---|---|
ノートPC | 100000 |
スマホ | 80000 |
タブレット | 60000 |
📌 例:「家電カテゴリまたは価格が50000円以上」の商品を取得
excelコピーする編集する=QUERY(A1:D5, "SELECT B, D WHERE C = '家電' OR D >= 50000")
結果
商品名 | 価格 |
---|---|
ノートPC | 100000 |
スマホ | 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関数を活用して、スプレッドシートのデータ抽出を効率化しましょう! 🚀