目次
1. はじめに
2. 利用するデータ
3. 使い方(コピペ可)
4. 参考にしたサイト
1. はじめに
Googleスプレッドシートの「Query関数」でselect句が使えるとの事で、Vlookup関数より便利そうなのでこの機会に使い方を整理する
EXCELで「Query関数」は使えません
↓ こんな感じで書ける
=query('シート1'!A:C,"select A,B,C where A='うんこ'")
2. 利用するデータ
スプレッドシートの「シート1」、「シート2」にデータ入力して「シート3」でQuery関数を使う
表1:シート1
| A列 | B列 | C列 | |
|---|---|---|---|
| 1 | 物 | 色 | 状態 |
| 2 | うんこ | 茶色 | 健康 |
| 3 | おしっこ | 茶色 | 健康 |
| 4 | おしっこ | 赤 | 危険 |
表2:シート2
| A列 | B列 | |
|---|---|---|
| 1 | 物 | 臭い |
| 2 | うんこ | 強い |
| 3 | おしっこ | 普通 |
3. 使い方(コピペ可)
1. where句でキーワードと一致する行を抽出する
A列のうんこのある行を抽出する
=query('シート1'!A:C,"select A,B,C where A='うんこ'")
[結果]
| A列 | B列 | C列 | |
|---|---|---|---|
| 1 | うんこ | 茶色 | 健康 |
2. where句でキーワードと一致する行を抽出する(見出しあり)
A列のうんこのある行を抽出する(見出しあり)
=query('シート1'!A:C,"select A,B,C where A='うんこ'",true)
[結果]
| A列 | B列 | C列 | |
|---|---|---|---|
| 1 | 物 | 色 | 状態 |
| 2 | うんこ | 茶色 | 健康 |
3. where句でキーワードと部分一致する行を抽出する
A列のうの部分一致で行を抽出する
=query('シート1'!A:C,"select A,B,C where A like'%う%'")
[結果]
| A列 | B列 | C列 | |
|---|---|---|---|
| 1 | うんこ | 茶色 | 健康 |
4. where句でキーワードで複数条件が一致する行を抽出する
A列のおしっこ かつ B列の茶色のある行を抽出する
=query('シート1'!A:C,"select A,B,C where A='おしっこ' and B='茶色'")
[結果]
| A列 | B列 | C列 | |
|---|---|---|---|
| 1 | おしっこ | 茶色 | 健康 |
5. 複数テーブルを結合して表示する
表1と表2のA列のうんこをキーワードに結合して表示する(見出しも表示)
=query({'シート1'!A:C,'シート2'!A:B}," select Col1,Col2,Col3,Col5 where Col1='うんこ'",true)
where句で指定する結合列(Col1(シート1:A列)、Col4(シート2:A列))はどちらを指定してもOK
キーワードの結合列を「Col1」 → 「Col4」に変更しても結果は同様となる
=query({'シート1'!A:C,'シート2'!A:B}," select Col1,Col2,Col3,Col5 where Col4='うんこ'",true)
[結果]
| A列 | B列 | C列 | D列 | |
|---|---|---|---|---|
| 1 | 物 | 色 | 状態 | 臭い |
| 2 | うんこ | 茶色 | 健康 | 強い |
6. 見出しを別名にして表示する
見出しを別名にして表示する
=query('シート1'!A:C,"select A,B,C label A 'objec',B 'color',C 'status'",true)
[結果]
| A列 | B列 | C列 | |
|---|---|---|---|
| 1 | objec | color | status |
| 2 | うんこ | 茶色 | 健康 |
| 3 | おしっこ | 茶色 | 健康 |
| 4 | おしっこ | 赤 | 危険 |
7. group by句で集計し、order by句で並び替えをする
A列うんことおしっこのカウントを集計し、数の大きい順(降順)に並べる
空白行までカウントされてしまうので「 where A is not null 」を含める
=query('シート1'!A:C,"select A ,count(A) where A is not null group by A order by A desc ",true)
[結果]
| A列 | B列 | |
|---|---|---|
| 1 | 物 | count 物 |
| 2 | おしっこ | 2 |
| 3 | うんこ | 1 |
8. pivot句でクロス集計する
A列うんことおしっこ、C列健康と危険のカウントをクロス集計する
=query('シート1'!A:C,"select A ,count(A) where A is not null group by A pivot C",true)
[結果]
| A列 | B列 | C列 | |
|---|---|---|---|
| 1 | 物 | 健康 | 危険 |
| 2 | うんこ | 1 | |
| 3 | おしっこ | 1 | 1 |