GoogleスプレットシートはログインをすればどのPCでも使えたり、Excelとの互換性もあったりと便利なツールです。そんなスプレッドシートをデータ管理のために活用している人も多いのではないでしょうか。

ただし、複数のシートで同じデータを使っている場合、元シートのデータが変わると参照した側の値も変わってしまいます。そこで便利なのは「QUERY関数」です。

QUERYを使って他のシートにデータを移した場合は、元のデータの数値が変わった場合も自動で反映されます。他にもQUERYを使ってさまざまなことができます。それぞれ詳しく説明しているのでぜひ参考にしてみてください。

スプレッドシートのQUERY関数とは

スプレッドシートのQUERY関数とは

QUERY(クエリ)とは「問い合わせ」をを意味します。つまり、QUERY関数とは必要になるデータを抽出できる関数ということです。

具体的には、1つのシートにある情報を他のシートに出力できます。さらに、1つのセルに関数を設定するだけでシート全体に反映することも可能です。

より理解しやすくなるよう、以下のシートで説明します。ここでは、上の「A1からF10まで」の値を「A12からF21」にも反映させています。

コピーでも対応できますが、その場合だと上の表のデータが変わったり、並び替え(ソート)があると下の表も修正が必要になったりします。

しかし、QUERY関数を使うともともとのデータの情報が更新された場合でも自動的に反映するため修正の必要がありません。

スプレッドシートのQUERY関数とは

QUERY関数を使用するには「A12=QUERY(A1:F10)」と入力するか「挿入→関数→QUERYと進んでA1からF10を選択する」といった2つの方法があります。

スプレッドシートのQUERY関数における3つの引数

スプレッドシートのQUERY関数における3つの引数

スプレッドシートにおけるQUERY関数の引数として次の3つが挙げられます。

  • データ
  • クエリ
  • 見出し

QUERY関数の基本的な構文は次のとおりです。

  • =QUERY(データ,クエリ,[見出し])

ここでは、引数ごとの詳しい内容を解説します。

引数1.データ

データでは「QUERYを実行するセルの範囲」を指定します。上の表では「A1:F10」となり、列全体を対象する場合は「A:F」を指定します。今後、さらに列が増える可能性がある場合は、列全体を指定する方がおすすめです。

引数2.クエリ

クエリによって「どのような条件のデータを抽出するか」を指定します。例えば、上の表からニンジンを販売したデータを抽出する場合は次のとおりです。

  • “where C = ‘ニンジン’“

このようにダブルクォートで囲む必要があります。whereに関してはこのあと詳しく説明します。

引数3.見出し

最後に「見出し」を作ります。「見出しを設定しない」もしくは「-1」と記載したい場合、他のデータから推測させることになります。上の表では1行目が見出しとなるため「1」を指定します。

QUERY関数でよく使われる4つのQuery言語

QUERY関数でよく使われるQuery言語は次の4つです。

  • Select
  • Order by
  • Where
  • Group by

これら以外にも、任意の行数をスキップする「OFFSET」や表示される数値を整える「FORMAT」といった計10種類のQuery言語があります。抽出したい情報にあわせて使い分けてみてください。

1.Select

Selectは「選択範囲において表示させたい列だけを表示させる方法」です。数式は次のようになります。

  • =QUERY(選択範囲,“Select 列1,列2,列3,…”)
1.Select

2.Order by

Order byは「抽出したデータの入れ替え(ソート)」ができます。つまり、数字を「大きなものから小さいものに」か「小さいものから大きなものに」のいずれかの方法で並べ替えが可能です。

例えば、次の表であればF列の売上高を売上高の数値が大きい順に営業担当者ごとに並べ替えられます。

  • =QUERY(A1:F10,”select(B),F ORDER BY F desc”)
2.Order by

3.Where

Whereは「選択範囲において表示させたい行を選択して表示できる」Query言語です。

  • =Query(選択範囲,“Where 条件範囲列=条件”)

次のように「400円より高く売上を上げた」といった条件に該当する列(この場合はB列とC列)を表示するなど、さまざまな使い方があります。

3.Where

4.Group by

Group byは「必要な値を選択して次のような方法で集計できる」Query言語です。

COUNT列の数を出す
SUM合計の値を出す
AVG平均の値を出す
MAX最大の値を出す
MIN最小の値を出す

例えば、F列の売上高の平均を出すのであれば、下記のような数式となります。

QUERY関数の基本的な使い方

QUERY関数の基本的な使い方として「Select」を使った内容をみていきましょう。Selectを使用したQUERY関数の基本形は次のとおりです。

  • =QUERY(A1;F10,”SelectF”)

ここでは、売上高(F列)だけを表示させます。

QUERY関数の基本的な使い方

さらに、列を増やすことも可能です。

  • =QUERY(A1;F10,”SelectF,A”)

次のように、売上高(F列)と日付(A列)が表示されました。

QUERY関数の応用的な使い方

QUERYの応用的な使い方として、列を選んだ後に「売上高(F列)が400円以上」といったように、条件を絞った抽出の仕方もあります。

  • =QUERY(A1;F10,”Select(B),(C)”whereF>400”)

売上が400円を超えている「担当者」と「商品」だけが抽出されます。

さらに条件を追加して、売上高(F列)が400円以上かつ「売上個数が3個より多い」といった条件でも抽出できます。

  • =QUERY(A1;F10,”SelectF,AF,A”whereF>=400”AND E>3”)

このように、QUERY関数にはさまざまな使い方があります。作られた表から必要な情報だけを抽出して集計や資料化もできるので、色々な集計結果を作り上げることが可能です。

なお、当サイトではQUERY関数以外にも、スプレッドシートに関するさまざまな情報を発信しています。ぜひ参考にしてみてください。

【超便利】本当によく使うGoogleスプレッドシートの関数30選!

Googleスプレッドシートで文字列を自在に扱う方法 | 結合と分割を解説