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

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

前回の 「上級編①」 では、

  • SELECT文で特定の列を抽出
  • WHERE文で条件を指定
  • Col1、Col2などの柔軟な指定方法
    を解説しました。

今回は、 より高度なデータ抽出テクニック として
WHEREで日付の範囲を指定
LIKEを使った部分一致検索
ORDER BYで並び替え
GROUP BYでデータを集計(SUM・AVG・MIN・MAX)
といった 業務で使える実践的な使い方 を紹介します!


1. WHEREで日付の範囲を指定

📌 QUERY関数は日付データを {yyyy-mm-dd} の形式で扱う必要がある

基本構文

excelコピーする編集する=QUERY(範囲, "SELECT 列名 WHERE 日付列 >= DATE 'yyyy-mm-dd'")

✅ 例:2024年1月以降の売上データを取得

注文ID商品名注文日売上
101ノートPC2024/01/05100000
102スマホ2023/12/2080000
103タブレット2024/01/1060000
104イヤホン2023/11/2512000
excelコピーする編集する=QUERY(A1:D5, "SELECT B, C, D WHERE C >= DATE '2024-01-01'")

結果

商品名注文日売上
ノートPC2024/01/05100000
タブレット2024/01/1060000

✅ 例:2024年1月1日~2024年1月31日までの売上データを取得

excelコピーする編集する=QUERY(A1:D5, "SELECT B, C, D WHERE C >= DATE '2024-01-01' AND C <= DATE '2024-01-31'")

💡 ポイント

  • 日付は DATE ‘yyyy-mm-dd’ の形式で指定する
  • 比較演算子(>=, <=, =)を使って範囲を設定
  • TEXT関数を使えば変動的な日付も指定可能
excelコピーする編集する=QUERY(A1:D5, "SELECT B, C, D WHERE C >= DATE '" & TEXT(TODAY() - 30, "yyyy-mm-dd") & "'")

→ 過去30日間のデータを取得!


2. LIKEで部分一致検索

📌 WHERE文に LIKE を使うと、特定の文字を含むデータを検索可能

基本構文

excelコピーする編集する=QUERY(範囲, "SELECT 列名 WHERE 列名 LIKE '検索文字%'")

✅ 例:「スマホ」を含む商品を抽出

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

結果

商品名カテゴリ価格
スマホ家電80000
スマホケースアクセサリー3000

💡 ポイント

  • LIKE ‘%文字列%’「文字列」を含むデータを検索
  • LIKE ‘文字列%’「文字列」で始まるデータを検索
  • LIKE ‘%文字列’「文字列」で終わるデータを検索

3. ORDER BYで並び替え(昇順・降順)

📌 ORDER BY を使うと、データを昇順・降順に並べ替え可能

基本構文

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

✅ 例:価格の安い順に商品を並び替え

excelコピーする編集する=QUERY(A1:D6, "SELECT B, C, D ORDER BY D ASC")

結果

商品名カテゴリ価格
スマホケースアクセサリー3000
ワイヤレスイヤホンアクセサリー12000
タブレット家電60000
スマホ家電80000
ノートPC家電100000

✅ 例:価格の高い順に並び替え

excelコピーする編集する=QUERY(A1:D6, "SELECT B, C, D ORDER BY D DESC")

💡 ポイント

  • ORDER BY 列名 ASC昇順(小さい順)
  • ORDER BY 列名 DESC降順(大きい順)

4. GROUP BYでデータを集計(SUM・AVG・MIN・MAX)

📌 GROUP BY を使うと、特定の項目ごとにデータを集計できる!

基本構文

excelコピーする編集する=QUERY(範囲, "SELECT カテゴリ, SUM(価格) GROUP BY カテゴリ")

✅ 例:カテゴリごとの売上合計を算出

商品ID商品名カテゴリ売上
A001ノートPC家電100000
A002スマホ家電80000
A003タブレット家電60000
A004ワイヤレスイヤホンアクセサリー12000
A005スマホケースアクセサリー3000
excelコピーする編集する=QUERY(A1:D6, "SELECT C, SUM(D) GROUP BY C")

結果

カテゴリ売上合計
家電240000
アクセサリー15000

✅ 例:カテゴリごとの平均価格を算出

excelコピーする編集する=QUERY(A1:D6, "SELECT C, AVG(D) GROUP BY C")

💡 ポイント

  • SUM(列名) → 合計値
  • AVG(列名) → 平均値
  • MIN(列名) → 最小値
  • MAX(列名) → 最大値

✅ まとめ

クエリ文目的
WHERE + 日付指定した期間のデータを抽出WHERE C >= DATE '2024-01-01'
WHERE + LIKE部分一致検索WHERE B LIKE '%スマホ%'
ORDER BY並び替えORDER BY D DESC(降順)
GROUP BY + SUMカテゴリごとの売上合計SELECT C, SUM(D) GROUP BY C

👉 QUERY関数を活用すれば、スプレッドシートでもSQLのようなデータ抽出・集計が可能! 🚀