• ベストアンサー

エクセル関数及び計算式での質問

エクセルで順位表を作成。1位が1名 2位が同得点で3名ですが、次が5位になります。3位にする方法を教えて下さい。 順次、同得点者が複数いても 4位、5位と続けてランキングされる関数、及び計算式がありましたら教えて下さい。

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

  • ベストアンサー
  • don9don9
  • ベストアンサー率47% (299/624)
回答No.2

A列の値に対しての順位を求めるとします。 データは2行目から入っているとします。 B列を作業列として、B2に以下の式を入れます。 =IF(COUNTIF(A$2:A2,A2)=1,A2,"") C2に以下の式を入れます。 =RANK(A2,B:B) このB2:C2を下方向に、最終行までコピーします。 これでどうでしょうか。

power_588
質問者

お礼

有難うございます。ばっつりです )^o^(  私の会社では4月キャンペーンを張りますが、今回成績表を付けるのが私の役目でした 本社が福島県でしたので 今回の地震災害でデータがPCごとボツったのです 新たに、独自の成績入力システムの構築をしなければなりませんでした。 大変たすかりました 最後に人的被害はありませんでしが、本社社屋などふくめ 5件の当社の建物が 放射線被害退去エリアなので 現在無人、機能停止状態 トホホです。 また、お願いいたします。

その他の回答 (2)

回答No.3

詳細がわからないので とりあえず得点でソートかけて、順位をつける というVBAマクロを作ってみました ' ----------------------------------------- Private Sub sort_function() Dim 最終行 As Integer Dim キーセル As Variant Dim i, 順位 As Integer '縦方向の対象数を調べる。表のトップがあるから2行目から 最終行 = Cells(2, 1).End(xlDown).Row 'ソート範囲を選択する。名前と得点の2列を最終行まで選択 Range(Cells(2, 1), Cells(最終行, 2)).Select キーセル = "B" & 2 'ソートする Selection.Sort Key1:=Range(キーセル), Order1:=xlDescending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlSyllabary '順位を書き込む 順位 = 1 For i = 2 To 最終行 Cells(i, 3) = 順位 順位 = 順位 + 1 Next End Sub

回答No.1

2位が3名居る場合の優劣の付け方の基準はどうなってるのでしょう? 単純にソートでいいんですかね??

関連するQ&A