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 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|
| 非対応 | 非対応 | 対応 | 対応 | 対応 |
実務での使用例
売上列(3列目)を降順で並べ替え
売上列(3列目)を降順で並べ替え
=SORT(A2:D100, 3, -1)部署で昇順、売上で降順
部署で昇順、売上で降順
=SORTBY(A2:D100, B2:B100, 1, C2:C100, -1)