• 締切済み

同数の場合でも先に入力した数値へ上位の着順をつけたいのですが?

A,B,Cとあって、数値(少数第2位まで)を入力します。同数でも先に入力した方が上位となります。 入力順にC=10.11 1位、B=10.11 2位、A=10.11 3位と表示したいのですが。

みんなの回答

回答No.3

> 必ずしも上の行からの入力でない では、入力順の記録が必須になります。小学生の口喧嘩じゃないけど 何年何月何日の何時何分何秒に入力したのかを記録するか、せめて入 力順を記録しなければ、入力順を考慮した判定は不可能ですね。 で、原データに対して適切な「重み付け」をした入力順データを足す か引くか(数値の大きいのがエラいか小さいのがエラいかによる)して から順位を付けます。「重み付け」のポイントは、原データの順位が ひっくり返らないくらい十分小さくすること。原データが小数点以下 第二位まであるのなら、第四位以降あたりで細工をするように調節し ます。入力時刻の1/1000くらいが適切でしょうね。

karugamonooyako
質問者

お礼

ありがとうございます。入力順は実際は着順(結果は出ています)ごとに走ったタイムを入力するのですが、入力時に着順の入力する手間を省いて、タイムだけ入力しようかと思いしたが、難しそうですね。その手間を考えれば、着順も一緒に入力した方が簡単な気がしてきました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

例データ A列が原データ B列は参考 A列  B列  C列 1 6 6 1 6 7 2 4 4 3 2 2 4 1 1 3 2 3 2 4 5 1 6 8 B1は =RANK(A1,$A$1:$A$10) と入れて下方向に式を複写 C1は =RANK(A1,$A$1:$A$10)+COUNTIF($A$1:A1,A1)-1 と入れて下方向に式を複写。 上の行からデータを入力するものとし、。同数でも先に入力した、としています。

karugamonooyako
質問者

補足

ありがとうございます。よくわかりました。 ただ、あと必ずしも上の行からの入力でないので、その点を教えていただければたすかります。    A列 ~ C列 A君 10    1 B君 10    2 C君 10    3 →となりますがA君、C君、B君と入力すると順位がA君1位、C君2位、B君3位となるように入力したいのです。 imogasi様 どうかよろしくお願いします。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

COUNTIFを使用しては如何 COUNTIFで数えて+1すれば、入力が無ければ「0」が帰ってくるので+1で1位 入力が「5」あれば、6位と成ります

関連するQ&A