QUERYでデータを照会する
SheetsでSQLに似た構文を使い、データを選択、フィルタリング、グループ化します。
「QUERYでデータを照会する」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。
QUERYの役割
Google Sheetsには、小さなデータベース言語のように使える関数が1つあります。それがQUERYです。選択、絞り込み、集計を、SQLに非常によく似た構文で行えます。
FILTER、SORT、SUMIFを重ねて使う代わりに、読みやすい指示を1つ書くだけです。たとえば、East地域の行だけを表示し、売上順に並べるという処理が、1つの数式になります。
QUERYはGoogle Sheets独自の機能です。Excelにはないため、このレッスン全体がSheets専用です。
基本構文
QUERYは3つの部分で構成されます。
- data 読み取る範囲(
A1:D100など) - query 引用符で囲んだ命令のテキスト文字列
- headers ヘッダー行数を示す省略可能な数値
クエリ文字列がQUERYの要となる部分です。必ずダブルクォートで囲みます。
=QUERY(A1:D100, "SELECT A, B", 1)列の選択
SELECT句では、返す列を選びます。QUERY内ではヘッダー名ではなく、シート上の列記号(A、B、C)で列を指定します。
SELECT *を使うとすべての列を返せます。必要な列だけを残すには、列を指定して並べます。指定した順番が、そのまま結果に表示される順番になります。
=QUERY(A1:D100, "SELECT C, A, B", 1)サンプルデータセット
A1:D7に、Region、Rep、Product、Salesというヘッダーを持つ売上シートがあるとします。
- A: Region(East、West)
- B: Rep(Ann、Bo、Cy)
- C: Product(Pens、Paper)
- D: Sales(数値)
このデータセットをレッスンの後半でも使います。以下にQUERYの数式が出てきたら、このデータを思い浮かべてください。
WHEREによる絞り込み
WHERE句では、条件を満たす行だけを残します。=、>、<、>=などの演算子を使って、列と値を比較します。
テキスト値は、クエリ文字列全体がすでにダブルクォートで囲まれているため、文字列の中ではシングルクォートで囲みます。
=QUERY(A1:D7, "SELECT A, B, D WHERE A = 'East'", 1)数値の比較
数値で絞り込む場合、クォートは必要ありません。売上金額の大きい行だけを見るには、列Dを数値と直接比較します。
これにより、Salesが500を超える行だけが返され、重要な取引に集中したレポートにできます。
=QUERY(A1:D7, "SELECT B, C, D WHERE D > 500", 1)条件の組み合わせ
SQLと同じように、ANDとORを使って条件を組み合わせます。
ANDは両方の条件が真であることを要求しますORは少なくとも一方が真であれば成立します
この例では、East地域に属し、売上が300を超える行を残します。
=QUERY(A1:D7, "SELECT A, B, D WHERE A = 'East' AND D > 300", 1)行数の制限
LIMITを追加すると、返される行数の上限を設定できます。上位N件のプレビューを作成したり、ダッシュボードをすっきり見せたりするのに便利です。
ここでは、条件に一致した最初の3行だけを取得します。後で並べ替えと組み合わせれば、本格的な上位3件の一覧を作成できます。
=QUERY(A1:D7, "SELECT A, B, D WHERE D > 0 LIMIT 3", 1)シングルクォートとダブルクォートの使い分け
これは最初に誰もがつまずきやすいポイントです。クエリ全体がSheetsの1つのテキスト文字列なので、ダブルクォートを使います。そのため、比較するテキスト値はその中でシングルクォートを使う必要があります。
WHERE A = "East"と書くと、内側のダブルクォートによって文字列が途中で終了するため、数式が壊れます。必ずWHERE A = 'East'と書いてください。
=QUERY(A1:D7, "SELECT * WHERE C = 'Pens'", 1)クエリでのセル参照
セルの値を取り込むことで、インタラクティブなクエリを作成できます。セルの値はクォートの外側にあるため、&演算子で連結します。
セルF1に地域名が入っている場合、この数式はユーザーがそこに入力した値に応じて絞り込みます。
=QUERY(A1:D7, "SELECT A, B, D WHERE A = '" & F1 & "'", 1)headers引数
3番目の引数は、データにヘッダー行が何行あるかをQUERYに伝えます。1行目にRegionやSalesなどのラベルがある場合は、1を渡します。
省略するとQUERYが推測しますが、誤ることがあります。ヘッダーを結果に混ぜたり、数値をテキストとして扱ったりする場合があるためです。1を明示すると、結果を予測しやすくなります。
=QUERY(A1:D7, "SELECT A, D WHERE D > 100", 1)理解度チェック
QUERYの基本を理解できているか確認しましょう。
まとめ
Google Sheets QUERYの基本を学びました。
QUERY(data, query, headers)が基本構造ですSELECTでは列を記号で選び、*はすべての列を意味しますWHEREで行を絞り込み、ANDやORと組み合わせます- テキストにはシングルクォートを使い、数値にはクォートを使いません
&でセルの値を挿入し、インタラクティブな絞り込みを実現します
次は、結果を並べ替えたりグループ化したりして、集計を作成します。
=QUERY(A1:D7, "SELECT A, B, D WHERE A = 'East' AND D > 300 LIMIT 5", 1)よくある質問
「QUERYでデータを照会する」レッスンは無料ですか?
はい。「QUERYでデータを照会する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。
「QUERYでデータを照会する」で何を学びますか?
SheetsでSQLに似た構文を使い、データを選択、フィルタリング、グループ化します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Excel Formulas Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「QUERYでデータを照会する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このExcel Formulas Academyレッスンでコードを書いて実行できますか?
はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。