何度も登場しているQUERY 関数ですが、Google スプレッドシートでは、QUERY 関数を使用することで、特定の列を抽出したり、抽出したデータを昇順または降順に並び替えることもできます。
ORDER BY 句とは?
QUERY 関数は SQL のような言語を使用してデータを検索および操作するため、結果を並べ替えるために ORDER BY 句を使用します。
以下は、名前が書かれている列を昇順に並べ替えるための例です。
=QUERY(A1:Z, "SELECT A ORDER BY A")
この例では、A1からZまでのセルから、A列を取得し昇順に並べ替えています。
もし、降順に並べ替えたい場合は、ORDER BY句の後に DESC を追加すればOKです
=QUERY(A1:Z, "SELECT A ORDER BY A DESC")
複数の列を並び替える
複数の列を並び替えたい場合は、ORDER BY句に複数の列名を指定することができます。例えば、年齢が書かれている列を基準に、名前が書かれている列で昇順に並べ替えるためには、以下のように書きます。
=QUERY(A1:Z, "SELECT A, B ORDER BY B, A")
この例では、A列とB列を取得し、B列で昇順に並べ替え、B列で同じ場合はA列で昇順に並べ替えています
列を抽出して並び替える
QUERY関数では、複雑なパターンにも対応できます。例えばimportrange関数と組み合わせた下記のような複雑な関数も作れます。
[rml_read_more]
=query(importrange("1_k7O2SRTBdcF8m_MgEFTkVo61CTDKy4Dsn8gCKRHDq8","flower!A1:I1000"),"select Col1,Col5,Col7,Col8,Col9 Where Col5 >=DATE '"&A1&"' and Col5 <=DATE '"&B1&"' order by Col9 asc")
importrange関数を使う時は権限を付与する必要がありますので、アクセスを許可を押します。
下記のような表で実行すると、A1からB1までの期間内で数量の降順でデータが抽出されて並び替えられました!
まとめ
QUERY関数は、複雑な検索や集計をする際に非常に強力な関数です。詳しく知りたい場合は、Google スプレッドシートのヘルプや、QUERY 関数のドキュメントを参照することをお勧めします。