【Spreadsheet】QUERY関数で二つのシートにあるテーブルを結合させる
何かと頼りになるQUERY関数。
今回は二つのテーブルを結合させるためにご登場いただいた。
よりスマートでスッキリした解決方法もあると思うが、現在の業務での環境や制限上での選択であることをご了承いただきたい。
やりたいこと:
Spreadsheet上の別々のワークシート上にあるTableA とTableBを結合させたい。
TableAはユーザIDと行動ログ、TableBはユーザの氏名やメールアドレスなどユーザの個人情報が格納されている。
Table A
Table B
背景:
止むを得ない諸事情のため、面倒ではあるが定期的にTable A とTable Bのデータを手動でダウンロードし、スプレッドシート内のワークシート「TableA」と「TableB」にシートにそれぞれ転記している。
TableAとTable Bを結合してユーザの行動ログと個人情報を一つの表「View」で閲覧したい。
なお、「View」も「TableA」と「TableB」が更新されるたびに更新されるようにする。
方法:
二つのテーブルを結合表示させるシート「View」を新規作成して、TableAとTable BをQUERY関数で表示させる。
①「View」に「TableA」を表示させる
ここではTableAのAからD列を全件表示させる。
「View」シートのA1セルに次の関数を入力。
=query(‘TableA ‘!A:D, ”select *”)
②「Table B」を表示させる
TableAのB列にキーとなるユーザIDが格納されている。
TableBのA列を参照してユーザ情報を表示させる。
=query(TableB!A:D,"select B,C where A="&B2&"",0)
これをD2セルに入力。Whereの中でもセルを参照するときは"&セル番地&"が使える。
最後にD列以降の1行目に見出しを追加して完成。
完成したViewテーブル