数式だけで、昇順、降順に並べ替える方法
昇順、降順に並び替える作業は
・結構頻繁に行う
・その割に、自動化されていない
ことが多いのではないでしょうか?
例えば、リストを張り付けたら、そのリストが勝手に価格の高い順に並び替えられたら非常に便利だとは思いませんか?
今回はそんな悩みに、エクセルの関数だけで、答えたいと思います!!
数式の紹介
昇順に並ばせるには、
=SMALL(データ範囲,ROWS($$データ開始:データ行))
=SMALL(A1:A10,ROWS($A$1;A10))
降順に並べるには、
=LARGE(データ範囲,ROWS($データ開始行:データ行))
=LARGE(A1:A10,ROWS($A$1:A10))
を利用します。
この数式の仕組み
SMALL関数は、一連のデータから下からn番目の値を抽出するためのものです。
= SMALL(data ,1 ) // 1番目に小さい
= SMALL(data ,5 ) // 3番目に小さい
というような感じですね。
ですので、2番目の引数を「1,2,3,4,5」と順番に並べてあげることができれば、
小さいもの順に並べることができます。
この「1,2,3,4,5」を表すのが、ROWS関数です。
ROWS関数は、配列に含まれる行数をカウントする関数になっていますので、
=ROWS($C$3:C3)
として、行方向にコピーすることで、
=ROWS($C$3:C3)=1
=ROWS($C$3:C4)=2
=ROWS($C$3:C5)=3
・・・
と、1から順に数字をカウントしてあげることができます。
同様に、降順の場合は、SMALLの代わりに、LARGE関数
= LARGE(data ,1 ) // 1番目に大きい
= LARGE(data ,5 ) // 5番目に大きい
を使うことで実現可能です。
ポイント
ROWSを使って、[1,2,3,4,5]を作り上げるのがポイントです。
応用→そのほかの行のデータも引っ張ってくる。
特定の列の昇順を得ることができたので、
INDEX(MATCH())を使って、そのほかの行をとってくることも可能です。
例えば、先ほどの例に人を付け加えると、
A君が最下位、G君がドベ2という結果を数式で拾ってくることができました。
コメント欄