- 締切済み
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を使わずに、通常の関数のみで作成するためには どのような手法がありますでしょうか? また、「ツール」-「並べ替え」等も使用したくありません。 わがままな質問ですが、御教授よろしくお願い致します
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
もっと簡単な例で説明します。 (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引数だけが異なっています。 この考えを応用すると、列数が多くても出来ます。
- ssssssssss
- ベストアンサー率23% (24/103)
補足要求です。 N列に同じ値があった場合、第2キー以降の並び替えのキーおよび、順序はどうするのですか? 一応、いろいろ検討してみましたが、 関数で行うと、同列に同値が存在する場合、N列は問題なく表示できますが、その他の列が難しいと思います。
- matrix4
- ベストアンサー率16% (118/704)
関数はソートってあったかな!? オートフィルタではどうでしょう?
補足
ありがとうございます。 第2キーは、そこまで考えていませんでした。 「地点名」でお願できればと思います。 (文字だから無理ということであれば標高でもかまいません) よろしくお願い致します