前回は「SQL基礎」の記事で、SQLの基本的な命令文である SELECT, WHERE, ORDER BY について解説しました。
そして、最後の「つまづきやすいポイント 」で、SQLを気軽に試す方法として、Googleスプレッドシートの QUERY(クエリ)関数を少しだけご紹介しました。
そこで今回は、「スプレッドシートでSQLを体験してみよう」というテーマで、QUERY 関数の使い方を解説していきます!
1. QUERY関数って、そもそも何?
QUERY 関数は、Googleスプレッドシートの関数の一つで、シート内のデータに対して、SQLによく似た命令文で「検索」「絞り込み」「並び替え」ができる、とても強力な機能です。
前回の記事で「SQLを試すにはデータベースの環境構築が…」と書きましたが、QUERY 関数なら、Googleアカウントさえあれば(スプレッドシートが使えれば)、今すぐSQLにそっくりな体験ができます。
※残念ながら、Excelには(2025年現在)この QUERY 関数はありませんので、Googleスプレッドシートを使って試してみてください。
2. 準備:サンプルデータを用意しよう
習うより慣れろ、です!
まずは、Googleスプレッドシートを開き、前回の記事で使った「商品(products)」テーブルとまったく同じデータを入力してみましょう。
A1セルから順に、以下のように入力してみてください。
A | B | C | D | E | |
1 | product_id | product_name | category | price | release_date |
2 | 1001 | 魔法のノート | 文房具 | 500 | 2023-04-01 |
3 | 1002 | 走るボールペン | 文房具 | 300 | 2023-09-15 |
4 | 1003 | よく飛ぶスニーカー | ファッション | 8000 | 2023-05-20 |
5 | 1004 | 虹色Tシャツ | ファッション | 3500 | 2024-01-10 |
6 | 1005 | はじめてのSQL | 書籍 | 2800 | 2023-11-01 |
準備はできましたか?
QUERY 関数は、A1からE6の表とは別のセル(例えば A8 セルなど、空いている場所)に入力していきます。
3. QUERY関数の基本ルール
QUERY 関数の書き方は、このようになっています。
=QUERY(データ範囲, "クエリ(命令文)", [見出しの行数])引数1:データ範囲
どこのデータを対象にするか。例えばA列の1行目からE列の6行目までを対象とする場合は A1:E6 です。
引数2:"クエリ(命令文)"
SQLのような命令を書く場所。必ず "" (ダブルクォート) で囲みます。
引数3:[見出しの行数](省略可)
データの先頭から何行を見出し・ヘッダー(product_id, product_nameなどのカラム名が書かれている箇所)として扱うかを指定します。デフォルトでは1。
殆どの場合、見出し・ヘッダーは1行目に書いてあるでしょうから、この引数は実質ほぼ省略してよいです。
4. スプレッドシートでSQLを体験しよう
それでは、前回の復習をしながら QUERY 関数を書いてみましょう!
4-1. 全データを表示させたいとき (SELECT *)
前回、全データを表示するSQLはこうでした。
SELECT * FROM products;QUERY 関数では、FROM (どのテーブルから) の部分は、すでに関数の A1:E6 で指定しています。
そのため、命令文は SELECT から書き始めます。
空いているセルに、以下のように入力してみてください。
=QUERY(A1:E6, "SELECT *")これを入力すると、A8セル以降に、A1:E6 のデータがまるごとコピーされたように表示されれば成功です!

4-2. 特定の列だけ見たいとき (SELECT カラム名)
ここが QUERY 関数の少し特殊なところです。
QUERY 関数では、product_name や price といった列名(見出し)ではなく、A, B, C... という「列のアルファベット」を使って指定します。
- A列:
product_id - B列:
product_name - C列:
category - D列:
price - E列:
release_date
前回、「商品名 (product_name) と価格 (price) だけ見たい」というSQLを書きました。
SELECT product_name, price FROM products;QUERY 関数では、商品名 (B列) と価格 (D列) を指定するので、こうなります。
=QUERY(A1:E6, "SELECT B, D")









