📊つかえる関数.com

条件抽出した結果をさらに並べ替えて表示する方法は?

結論

FILTER関数で条件抽出した結果をSORT関数でネストして並べ替えることができます。

新機能中級·

詳しい解説

FILTER関数とSORT関数を組み合わせることで、条件に一致するデータを抽出し、そのまま並べ替えて表示できます。例えば `=SORT(FILTER(A2:D100, B2:B100="東京"), 4, -1)` とすることで、東京のデータのみを抽出し、4列目(売上額など)で降順に並べ替えられます。動的配列機能により、データが更新されると結果も自動的に再計算されます。この組み合わせは、条件付き集計や上位N件の抽出などで非常に便利です。

よくあるエラーと対処法

#CALC!

原因: FILTER関数の条件に一致するデータが1件もない場合に発生する。

対処: FILTER関数の第3引数に代替値を指定する。例:=SORT(FILTER(A2:D100, 条件, "該当なし"), 4, -1)。ただし代替値が文字列の場合はSORT関数でエラーになる可能性があるため、IFERRORで囲むことを推奨。

#SPILL!

原因: SORT(FILTER(...))の結果が展開されるスピル範囲に既存データがある。

対処: SORT関数を入力するセルの下・右方向の範囲を空にする。

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

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
動的配列関数は未対応動的配列関数は未対応対応対応対応

実務での使用例

東京の売上上位5件を抽出

全国の売上データから東京支店の売上上位5件を自動表示

=TAKE(SORT(FILTER(A2:D100, B2:B100="東京"), 4, -1), 5)
  1. FILTER関数で東京のデータのみ抽出
  2. SORT関数で売上額(4列目)降順に並べ替え
  3. TAKE関数で上位5件のみ取得
  4. 結果が自動的にスピルして複数セルに表示される

在庫切れ商品を商品コード順に表示

在庫が0の商品を商品コード順に一覧表示

=SORT(FILTER(A2:C100, C2:C100=0), 1, 1)