スプレッドシートを使っていると、複数のシートやテーブルのデータを組み合わせて一つの表にまとめたい場面がよくありますよね。そんなときに便利なのが、GoogleスプレッドシートのQUERY関数です。今回は、初心者の方にもわかりやすく、QUERY関数を使ってデータを結合する方法をご紹介します。
QUERY関数とは?
QUERY関数は、スプレッドシート内のデータをSQLのような構文で操作できる強力なツールです。例えば、特定の条件でデータを抽出したり、集計したり、並べ替えたりすることができます。
基本的な使い方
QUERY関数の基本的な構文は以下の通りです。
excel
=QUERY(範囲, クエリ, )
* 範囲: 操作対象のデータ範囲
* クエリ: 実行したい操作を記述した文字列
* 見出し: データの見出し行の数(省略可能)
例えば、:C10の範囲から、2列目が「東京」の行を抽出する場合、次のように記述します。
excel
=QUERY(C10, "SELECT * WHERE B = '東京'", 1)
データを結合する方法
複数のシートやテーブルのデータを結合するには、いくつかの方法があります。ここでは、代表的な方法をご紹介します。
VLOOKUP関数とQUERY関数を組み合わせる方法
VLOOKUP関数を使って、他のシートから関連するデータを取得し、QUERY関数で表示する方法です。
例えば、シート1のA列に「ID」、B列に「名前」があり、シート2のA列に「ID」、B列に「得点」があるとします。シート3で、IDをキーにして名前と得点を結合したい場合、次のように記述します。
excel
=QUERY({シート1!B, ARRAYFORMULA(VLOOKUP(シート1!A, シート2!B, 2, FALSE))}, "SELECT Col1, Col2, Col3", 1)
この方法では、シート1のA列とB列、そしてVLOOKUP関数で取得した得点を一つの範囲として扱い、QUERY関数で結合しています。
名前付き関数を使う方法
Googleスプレッドシートでは、独自の関数を作成して再利用することができます。例えば、LEFT_JOIN_BY_KEYSという名前付き関数を使うと、2つの範囲を指定して左結合を行うことができます。
excel
=LEFT_JOIN_BY_KEYS(範囲1, 範囲2, 結合キーの列番号1, 結合キーの列番号2)
この方法では、関数を一度作成すれば、複数のシートで再利用できるため、作業の効率化が図れます。
よくある質問
Q1: QUERY関数で複数の条件を指定するにはどうすればいいですか?
:C10の範囲から、2列目が「東京」かつ3列目が「男性」の行を抽出する場合、次のように記述します。
excel
=QUERY(C10, "SELECT * WHERE B = '東京' AND C = '男性'", 1)
複数の条件をANDやORで組み合わせて指定することができます。
Q2: VLOOKUP関数で複数の列を参照するにはどうすればいいですか?
VLOOKUP関数で複数の列を参照するには、波括弧 `{}` を使って列番号を指定します。
excel
=VLOOKUP(検索値, 範囲, {2,3}, FALSE)
このように記述することで、2列目と3列目の値を同時に取得することができます。
Q3: 名前付き関数を使うにはどうすればいいですか?
名前付き関数を使うには、まず関数をインポートする必要があります。手順は以下の通りです。
- スプレッドシートを開き、 > > をクリックします。
- インポート元として、関数が定義されているスプレッドシートを選択します。
- インポートした関数を、通常の関数と同じように使用します。
例えば、LEFT_JOIN_BY_KEYS関数を使う場合、次のように記述します。
excel
=LEFT_JOIN_BY_KEYS(範囲1, 範囲2, 結合キーの列番号1, 結合キーの列番号2)
まとめ
GoogleスプレッドシートのQUERY関数を使うことで、複数のシートやテーブルのデータを簡単に結合することができます。VLOOKUP関数や名前付き関数を組み合わせることで、より柔軟なデータ操作が可能になります。ぜひ、これらの方法を活用して、効率的なデータ管理を実現してください。
他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。



コメント