![見出し画像](https://assets.st-note.com/production/uploads/images/85282488/rectangle_large_type_2_7b97c4040acca466ebd6c7ba3e7ac198.jpeg?width=1200)
QUERY関数でDBから抽出する(その4)[QUERY関数][Googleスプレッドシート]
※前回の記事はこちら。
ある列の値を基準としてデータを並べ替えるときにはorder by句を用います。
以下の「受注案件データベース」(シート名:DB01)を例に用います。
![](https://assets.st-note.com/img/1661174813778-D1mSjcp4uh.png?width=1200)
select句とwhere句を用い「東京本社」のみ抜き出すQUERY関数はこちら。
=QUERY('DB01'!A:J,"select A,B,C,D,E,F,G,H,I,J where C = 101")
これに加え、order by句を用い列J「売上予定額」の金額が大きい順に並び替えます。
=QUERY('DB01'!A:J,"select A,B,C,D,E,F,G,H,I,J where C = 101 order by J desc")
以下の通り列J「売上予定額」の金額が大きい順に並び替えることができました。
![](https://assets.st-note.com/img/1661175940247-xL8b3pl9qK.png?width=1200)
order by句で降順は「desc」、昇順は「asc」を用います。
【降順】 order by 列 desc
【昇順】 order by 列 asc
昇順「asc」を用いる場合は注意が必要です。
データ範囲の指定によっては以下のように空白行が返る場合があります。
(以下の例は「where C = 101」を外した場合)
=QUERY('DB01'!A:J,"select A,B,C,D,E,F,G,H,I,J order by J asc")
![](https://assets.st-note.com/img/1661176562545-8dAe5NlC7g.png?width=1200)
昇順に並び替えたい場合はwhere句で「is not null」(=空白ではない)を用います。
=QUERY('DB01'!A:J,"select A,B,C,D,E,F,G,H,I,J where A is not null order by J asc")
以下の通り昇順に並び替えることができました。
![](https://assets.st-note.com/img/1661177214732-QhGuqg0PcB.png?width=1200)
※2022年9月に技術同人誌「会社員がVLOOKUPの次に覚えるQUERY関数超入門」を出版いたしました。