📊つかえる関数.com

VBAのRange.Sort代わりにSORT関数でデータを並べ替える方法は?

結論

SORT関数で数式による動的な並べ替えが可能、VBAマクロ不要

マクロ・自動化中級·

詳しい解説

VBAのRange.Sortメソッドの代わりに、Excel 2021/365のSORT関数を使えば数式で並べ替えが可能です。`=SORT(データ範囲, 列番号, 昇順降順)`のように指定し、元データが変わると自動で再ソートされます。複数列で並べ替える場合は`SORTBY`関数を使い、`=SORTBY(データ, 第1キー列, 1, 第2キー列, -1)`のように記述します。VBAマクロのように実行ボタンを押す必要がなく、常に最新の並び順が維持されます。

執筆・検証:田中 けんた|Excel歴15年・MOS資格保持

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
非対応非対応対応対応対応

実務での使用例

売上列(3列目)を降順で並べ替え

売上列(3列目)を降順で並べ替え

=SORT(A2:D100, 3, -1)

部署で昇順、売上で降順

部署で昇順、売上で降順

=SORTBY(A2:D100, B2:B100, 1, C2:C100, -1)