• ベストアンサー

エクセルでランク表を作成する方法について

Excelでランキング表を作成する方法を教えてください。 具体的には      国語  算数  理科   A   78   67   88   B   68   83   76   C   80   79   91 という表が既にあります。  これを次のような科目別のランキング表にしたいのです。       国語  算数  理科  1位   C     B   C  2位   A    C   A  3位   B    A   B   いろいろな関数を試したのですが,うまくいきません・・・  よろしくお願いします。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.2

添付図参照 G2: =INDEX($A:$A,MATCH(LARGE(B:B,$F2),B:B,0))

sanukiuron
質問者

お礼

早速 ありがとうございます。 データは職場にあるので,明日,試してみます!

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! とりあえず同順位の場合があっても対応できるようにしてみました。 (同順位の場合は上側の行が上位とします) Sheet1のデータをSheet2に表示するとして・・・ ↓の画像のようにSheet1に作業用の表を設けます Sheet1のF2セルに =IF($A2="","",COUNTIF(B:B,">"&B2)+COUNTIF(B$2:B2,B2)) という数式を入れオートフィルで列・行方向にコピー! これで各科目の順位が表示されます Sheet2のB2セルに =IF(COUNTA(Sheet1!$A:$A)<ROW(A1),"",INDEX(Sheet1!$A:$A,MATCH(SMALL(Sheet1!F:F,ROW(A1)),Sheet1!F:F,0))) という数式を入れ列・行方向にオートフィルでコピーすると 画像のような感じになります。 ※ 同順位(同点)がない場合は、作業用の表は必要なくSheet2のB2セルに =IF(COUNTA(Sheet1!$A:$A)<ROW(A1),"",INDEX(Sheet1!$A:$A,MATCH(LARGE(Sheet1!B:B,ROW(A1)),Sheet1!B:B,0))) で大丈夫だと思います。 参考になりますかね?m(_ _)m

sanukiuron
質問者

お礼

早速 ありがとうございます。 データは職場にあるので,明日,試してみます!

関連するQ&A

専門家に質問してみよう