QUERY関数の基本!別シートのデータからselect句で列を取得する方法


QUERY関数2アイキャッチ-3

みなさんこんにちは!
もり(@moripro3)です

GoogleスプレッドシートQUERY関数の使い方をシリーズでお届けしています!

前回は「QUERY関数の最初の一歩」として、クエリとは何か?QUERY関数を使うメリットは?をお伝えしました。

スプレッドシートのQUERY関数を使う最初の一歩!クエリを理解する
GoogleスプレッドシートのQUERY関数を紹介するシリーズ。第一回目は、「クエリ」とは何か?クエリでデータを抽出するイメージ・QUERY関数を使うメリットをお伝えします。

今回の記事では、QUERY関数の基本の使い方を紹介します。

  • QUERY関数の3つの引数を理解する
  • 別シートのデータを参照する方法
  • select句で列を抽出する方法

それではみていきましょう!

前回のおさらい:QUERY関数とは

QUERY関数とは「データ」に「クエリ」を指定して、目的のデータを抽出する関数です。クエリとは問合せのことでしたね。

そして、QUERY関数を使用する2大メリットがこちらです。

  • 一度セルに関数を入力すれば、元データに変更が発生した場合も、自動で結果が反映される
  • 元データと抽出データ(結果)を別シートに分けることが可能

QUERY関数の構文が下記で、3つの引数を指定します。(公式ドキュメントはこちら

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

QUERY関数の3つの引数を理解しよう

この項では、QUERY関数の3つの引数を詳しくみていきます。

引数 省略の可否 説明
データ 必須 クエリを実行するセルの範囲
クエリ 必須 データ操作を実行する条件
見出し 省略可 データの上部にある見出し行の数

前回、社員一覧(A~D列)からタカハシさんを抽出したQUERY関数がこちらでした。

query2-1

 

F1セルに入力されているQUERY関数の中身です。①~③の3つの引数を指定します。

query2-2

第1引数:データ

クエリを実行するセルの範囲を指定します。

  • 列全体を指定する場合→A:D
  • セル番地で指定する場合→A1:D9

列に値が増えていく想定だと、「列全体」の指定がオススメです。

また、同一スプレッドシート内の別シートを指定する、IMPORTRANGE関数を使用して別のスプレッドシートを指定することも可能です。

IMPORTRANGE関数は、こちらの「他のスプレッドシートの範囲を参照する」の項をご覧ください。

スプレッドシートで別ファイルのデータをVLOOKUPで取得する方法
GoogleスプレッドシートではIMPORTRANGE関数を使って別の異なるスプレッドシートからVLOOKUPでデータを引っ張ってくることができますので、その方法についてお伝えしていきます

第2引数:クエリ

クエリとは「問合せ」のことです。どのような「条件」でデータ抽出するかを指定します。

query1-2

クエリは、二重引用符(ダブルクォート)で囲む必要があります。

where C = ‘タカハシ’

または、セルへの参照も可能です。

クエリ言語をより深く学びたい方は、こちらのドキュメント(英語版)もご覧ください。

第3引数:見出し

データの上部にある見出し行の数を指定します。省略、または、 -1 と指定した場合は、データの内容に基づいて推測されます。

つまり、意図しない結果が返ることもあるので、省略せずに指定しておいたほうがよいでしょう。上記の例だと、A:D列の1行目が見出しなので「1」を指定してます。

別シートのデータを参照する方法

課題一覧表のサンプル使用して紹介していきます。(シート名:課題一覧表)

query2-3

QUERY関数を使うメリットの1つに「元データと抽出データ(結果)を別シートに分けて管理できる」がありましたね。

QUERY関数で別シートを参照する場合の、第1引数の指定方法がこちらです。

    ‘シート名’!セル範囲

    セル範囲の前に ‘シート名’! を付けます(シート名をシングルクォートで囲って、!を付与)

    課題一覧表のA列~E列を参照する場合は、‘課題一覧表’!A:E と記述します。

    それでは次の項で、課題一覧表シートから列の抽出をしてみましょう!

    select句で任意の列を抽出する

    select句とは、データから列を抽出するクエリです。「抽出する列」と「順序」を指定できます。

    まずは、基本の3パターンの書き方を覚えましょう!

    1. 1列のみを抽出する
    2. 複数列を抽出する
    3. すべての列を抽出する

    1列のみを抽出する

    元データから、特定の1列のみを抽出する書き方です。

    selectの後にスプレッドシートの「列」を記述します(列はアルファベットで指定)

    select 列

    課題一覧表シートのA列を新規シートに抽出してみます。第2引数のクエリをダブルクオートで囲むのをお忘れなく!

    query2-13

    複数の列を抽出する

    元データから複数の列を抽出する書き方です。列名をカンマ区切りで指定します。

    select 列,列,列…

    課題一覧表シートのA列・C列・D列を新規シートに抽出してみます。

    query2-14

    列の抽出順序は、アルファベット順とは限らず、入れ替えることも可能です。
    A列、D列、C列の順番で抽出(表示)させてみます。期限とステータスの列を入れ替えて取得できました。

    query2-15

    列数が多い(横に長い)データの必要列のみを印刷するときに、「列の非表示」で不要な列を隠している方、いませんか?こんな風に。

    query2-16

    元データをいじると、全データを見たいときに再度列を表示させなければならず、手間がかかりますよね。あとから元データを見る人も、(ん…?この非表示列、何だろう?)って気になっちゃいますからね。

    QUERY関数のselect句を活用すれば、元データを一切いじることなく、新規シートに必要な列のみを抽出できます!しかも、列の並び順も自由に指定可能です!

    列数の多いデータの管理に苦戦している方は、ぜひ使ってみてくださいね!

    すべての列を抽出する

    最後に、元データのすべての列を抽出する書き方です。

    selectのあとに、アスタリスク(*)を付けます。アスタリスクは「すべて」の意味です。

    select *

    課題一覧表シートのすべての列を新規シートに抽出してみます。

    query2-12

    今の段階では、すべての列を抽出すると、元データをそっくりそのまま取得しただけになります。何の意味があるの?と思いますよね。

    シリーズを通して紹介する他の句と組み合わせる時に役立ちます。この記事では、「アスタリスクですべての列を取得できる」と覚えておきましょう!

    まとめ

    今回の記事では、この3点を紹介しました。

    • QUERY関数の3つの引数
    • 別シートの元データを参照する方法
    • select句で列を抽出する方法、順序を指定する方法
      • select 列(1列を抽出)
      • select 列,列,列…(複数列を抽出)
      • select *(すべての列を抽出)

    次回は、where句を使用して、任意の行を抽出する方法をお伝えします!

    どうぞお楽しみに!

    連載目次:GoogleスプレッドシートQUERY関数をマスターしよう

    スプレッドシートのQUERY関数を使って、データ抽出・集計を効率化する方法を紹介しています。

    1. スプレッドシートのQUERY関数を使う最初の一歩!クエリを理解する
    2. QUERY関数の基本!別シートのデータからselect句で列を取得する方法
    3. 【QUERY関数】where句と比較演算子を使って単一条件に一致した行を抽出する
    4. 【QUERY関数】where句とlike演算子を使用して指定の文字を含む行を抽出する
    5. 【QUERY関数】where句で日付データを条件にして行を抽出する
    6. 【QUERY関数】where句で時刻データを条件にして行を抽出する

      投稿者プロフィール

    もり
    もりシステムエンジニア・Webライター
    「ラクするために全力を尽くす」をモットーに日々勉強。退屈なことはプログラミングで片づけよう。
    事務作業をとことんラクにできるITネタを発信していきます。

    お気軽にフォローしてくださいね!

    もりの詳しいプロフィールはこちら
    ▽▽▽

    コメント

    タイトルとURLをコピーしました