SORTBY関数

Excel 365, Excel 2021+

概要

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)

テーブルデータを売上降順でソート。データ追加時も自動調整されます。

よくある質問

SORTはソート対象と同じ範囲でしかソートできませんが、SORTBYは別の基準配列でソート可能。複数条件ソートもSORTBYのみ対応。

自動的に昇順(1)になります。降順にする場合は明示的に-1を指定する必要があります。

結果範囲にデータや結合セルがあるため。結果を返すセル範囲を空にするか、別の場所に移動してください。

Excel 365、Excel 2021以降でのみ使用可能。Excel 2019以前では使用できません。

一般的なエラーと解決策

#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+