目次
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 |