• 締切済み

EXCELでランキング表の作成

Excelでランキング表を作成したいと思いますが シート1に、以下の表があるとします A列(地点名) B列(標高) ・・・ M列(時分) N列(気温) A地点      500       5時     +1.2 B地点      550       6時     -0.8 C地点      600       6時     -1.2 D地点      530       5時     -0.8 シート2に、気温(N列)の低い順に並べ替えを行って N列(気温) A列(地点名) B列(標高) ・・・ M列(時分)  -1.2      C地点      600       6時      -0.8      B地点      550       6時      -0.8      D地点      530       5時      +1.2      A地点      500       5時      という表を作成したいと思います。 VBAを使わずに、通常の関数のみで作成するためには どのような手法がありますでしょうか? また、「ツール」-「並べ替え」等も使用したくありません。 わがままな質問ですが、御教授よろしくお願い致します

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

もっと簡単な例で説明します。 (1)RANK関数は、同値は同番号を返すので、具合が悪いのでB列に値が入っているとして(B1:B10) =RANK(B1,$B$1:$B$10)+COUNTIF($B$1:B1,B1)-1 として、下方向に式を複写すると (B列) (C列) 12 8 13 5 34 2 55 1 11 9 32 3 13 6 8 10 14 4 13 7 のように、同値でも違った番号を振るように出来ます。 (2)さて大小の順番の番号を振った後に (A列) (B列) (C列) a 12 8 b 13 5 c 34 2 d 55 1 e 11 9 f 32 3 g 13 6 h 8 10 I 14 4 j 13 7 とすると E1に =OFFSET($A$1,MATCH(ROW(A1),$C$1:$C$10,0)-1,0) F1に =OFFSET($A$1,MATCH(ROW(B1),$C$1:$C$10,0)-1,1) と入れてそれどれ下方向に複写します。 行番号と値の大小の順番番号を一致させて、セルの値を拾ってきます。 結果は (E列) (F列) d 55 c 34 f 32 I 14 b 13 g 13 j 13 a 12 e 11 h 8 とソートされます。 E列の式とF列の式は第3引数だけが異なっています。 この考えを応用すると、列数が多くても出来ます。

回答No.2

補足要求です。 N列に同じ値があった場合、第2キー以降の並び替えのキーおよび、順序はどうするのですか? 一応、いろいろ検討してみましたが、 関数で行うと、同列に同値が存在する場合、N列は問題なく表示できますが、その他の列が難しいと思います。

x_shio
質問者

補足

ありがとうございます。 第2キーは、そこまで考えていませんでした。 「地点名」でお願できればと思います。 (文字だから無理ということであれば標高でもかまいません) よろしくお願い致します

  • matrix4
  • ベストアンサー率16% (118/704)
回答No.1

関数はソートってあったかな!? オートフィルタではどうでしょう?

関連するQ&A