- ベストアンサー
並べ替え
A1からA20番まで名前が入力してあり、B1からB20まで点数を入れながら、常に高い点数をトップになるよう自動的に並べ替える方法はなかったでしょうか?いつも点数の入力がすんだ後、→並べ替えの作業をしています…やはりマクロを使った方が早いでしょうかね。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
点数だけならLARGE関数というものがあり、E1に =LARGE(B:B,ROW()) と入力してE20までコピーすれば1番から20番までの点数がE列に出ます。 また名前も一旦A列をC列にコピーしておいて、D1に =VLOOKUP(E1,$B$1:$C$20,2,FALSE) と入力してD20までコピーすれば一応D列に名前を出すことは出来ます。 しかしこの方法の致命的欠陥は同点数者がいた場合上位行に入力されている者の氏名しか現れない、ということです。 これだけのことをワークシート関数だけでクリアするためにはINDIRECT、MATCH、ADDRESS、COLUMN、RANK、ROW、IFなど数多くの関数を選択・組み合わせたかなり複雑な計算式を設けるか、別に作業列を数列設けて前記の関数式を設定するか、若しくはマクロを組むしかないでしょう。 そこまでするくらいならいつもおやりになっているようにデータを並べ替えた方が手っ取り早いと思いますので、あまり自信もないし、ここでは割愛させていただきます。
お礼
詳しくアドバイスいただきありがとうございます。