• ベストアンサー

エクセルでこんなこと、できるのでしょうか?

たとえばA1に1 B1に2 C1に3というようにJ1に10まで入力 (この1~10は人の番号) A2からJ2には1から10の人のそれぞれの科目Aの点数 同じくA3からJ3には科目Bの点数、と言う風に入れていきます。 K2、K3・・・に入れたいのは、点数が一番高かった人の番号 単に一番高かった点数ならMax関数を使うというのはわかるのですが、違うセル番地にあるその点数を取った人を指定するという方法(関数?)が思いつきません。こんなこと、できるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

基本的な数式は K2 =INDEX($A$1:$J$1,MATCH(MAX(A2:J2),A2:J2,0)) 以下コピー といった具合です。 #ただし,しばしば点数が一番高いヒトが同点複数いた場合,じゃぁどうしたいのかが次の課題になります。 具体的にどんな具合に結果を示したいのか,必要に応じて次の手を模索したり改めてご相談を投稿してみてください。

aoi_hana
質問者

お礼

すぐにご回答を頂いたようでありがとうございます。さっそくこの式を入れてみましたが、うまく反応してくれました。当たり前、ですね(^_^;) この時点で止まっていましたが、これでめどがつき先へ進めそうです。また新たに不明点が出てくることがあるかと思いますので、改めて質問させていただきます。ありがとうございました。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

一番高い点数が2人以上いた場合にも対応できるようにするためには次のような作業列を作って対応することが分かり易いでしょう。 例えばK列より右の列でL列からU列までを作業列として使用します。 L2セルには次の式を入力してU2セルまでオートフィルドラッグしたのちの下方にもオートフィルドラッグします。 =IF($A2="","",A2+(1-COLUMN(A1)/100)) その後にK2セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A2="","",INDEX(A$1:J$1,MATCH(LARGE(L2:U2,1),L2:U2,0))&IF(INT(LARGE(L2:U2,2))=INT(LARGE(L2:U2,1)),"/"&INDEX(A$1:J$1,MATCH(LARGE(L2:U2,2),L2:U2,0)),"")&IF(INT(LARGE(L2:U2,3))=INT(LARGE(L2:U2,1)),"/"&INDEX(A$1:J$1,MATCH(LARGE(L2:U2,3),L2:U2,0)),"")&IF(INT(LARGE(L2:U2,4))=INT(LARGE(L2:U2,1)),"/"&INDEX(A$1:J$1,MATCH(LARGE(L2:U2,4),L2:U2,0)),"")) この式では最高の点数が4人まで対応することができます。適宜変更して使用してください。

aoi_hana
質問者

お礼

詳しいご回答をありがとうございます。コピペでやってみましたが、複数1位が/で区切られ表示できるのですね。まだその表自体が試行錯誤の段階で、具体的にどう発展させるか決まっていないのですが、とても参考になりました。(このような複雑な式を自力で作成するのは無理ですので)ありがとうございました。

関連するQ&A