クイックナビゲーション
SORTBY関数
概要
SORTBY関数は、指定した配列や範囲を他の配列の値に基づいて柔軟に並べ替える動的配列関数です。複数の並べ替え条件を指定でき、SORT関数よりも高度なカスタマイズが可能です。動的配列に対応し、データ量の変化に自動対応します。
構文
=SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],…)
パラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| array | Array/Range |
はい | ソートの対象となるデータ範囲。複数列も可。 |
| by_array1 | Array/Range |
はい | ソートの基準となる列・行。必須。 |
| [sort_order1] | Number |
いいえ | ソート順序(1=昇順、-1=降順)。省略時は1。 |
| [by_array2, sort_order2]... | Array/Number |
いいえ | 追加のソート条件をペアで指定可能。 |
SORTBY関数の使用
SORTBYは、従来のソート機能を超える柔軟性を持ち、複数の条件でデータを並べ替えられます。売上上位表示、売上額で並べた上で地域順など、複雑な並び替えに最適です。動的配列により、データの増減に自動対応し、FILTERやUNIQUEとの組み合わせで強力なデータ処理を実現します。
SORTBYの一般的な例
基本的な昇順ソート
=SORTBY(A2:B10, B2:B10)
A列(商品名)とB列(売上)をB列の売上額昇順で並べ替え。名前と売上額が一緒にソートされます。
降順ソート
=SORTBY(A2:C10, C2:C10, -1)
C列(日付)で降順(新しい順)にソート。最新データが上部に表示されます。
複数条件ソート
=SORTBY(A2:D10, B2:B10, 1, C2:C10, -1)
まずB列(地域)昇順で並べ、その後C列(売上)降順でソート。地域順→売上上位順になります。
動的配列例(テーブル)
=SORTBY(テーブル1[商品名]&" "&テーブル1[売上], テーブル1[売上], -1)
テーブルデータを売上降順でソート。データ追加時も自動調整されます。
よくある質問
一般的なエラーと解決策
#VALUE! エラー
Cause: by_arrayが1行または1列でない、またはsort_orderが1/-1以外
Solution: 基準配列を単一列にし、ソート順序は1または-1のみ使用
#SPILL! エラー
Cause: 結果範囲が占有されている
Solution: 結果セル周辺をクリアするか、別の空の場所に移動
#N/A エラー
Cause: arrayとby_arrayのサイズが一致しない
Solution: 両方の範囲が同一サイズであることを確認
注記
- 最大10ペアまでのソート条件指定可能
- 構造化参照(テーブル)と相性抜群
- RANDARRAYやSEQUENCEとの組み合わせでランダムソートも可能
- 元のデータは変更されません(非破壊的)
互換性
利用可能: Excel 365, Excel 2021, Excel for Web
利用不可: Excel 2019, Excel 2016, Excel 2013, Excel 2010, Excel 2007, Excel 2003
コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 365, Excel 2021+