[[20080814150042]] 『成績ランク表の差を出したい』(MAC123) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『成績ランク表の差を出したい』(MAC123)
  
A	B	     C	          D
198.2 	2		
111.1 	3	1位と2位の差	150.5 
98.5 	5	2位と3位の差	87.1 
348.7 	1	3位と4位の差	4.8 
90.2 	6	4位と5位の差	7.8 
106.3 	4	5位と6位の差	8.3 
 
生徒の成績表を作成しておりますが、A欄に成績を入力し
B欄にランク関数を利用して成績上位順にランクを付けて
おりますが、成績1位と2位の差をD欄に出したいのですが、
いくら考えてもうまくいきません。誰か、お助けを!


 同点が有った場合は、順位はどの様に付くのでしょう?
 RANK関数を使っていた場合 間が飛ぶと思いますが。
 例えば、3位が同点だった場合 4位がおらず5位が表示されます。
 「差」は何処でとるのですかね?

 もしも、同点が居た場合 上側に出てきた人が上位 の様に
 6人居たら 必ず1〜6位までが有るのなら
 表が1行目から始まっている場合
 D2セルに
=SUMIF($B$1:$B$6,ROW(A1),$A$1:$A$6)-SUMIF($B$1:$B$6,ROW(A2),$A$1:$A$6)
 として、下にコピー

 とか・・・。

 (HANA)

HANAさん、どうもありがとうございました。
うまくいきました。

成績の同点はあまりないのですが、あった場合、
B欄において、出席順(上位者)を優先するランク関数はあるのでしょうか。
当方は、=RANK(A2,$A$2:$A$7,0)
で入力しておりますが、わかりましたら、教えてください。


 簡単には、作業列を使用してください。
	[A]	[B]	[C]
[1]	198.2	198.199	2
[2]	111.1	111.098	3
[3]	111.1	111.097	4
[4]	348.7	348.696	1
[5]	90.2	90.195	6
[6]	106.3	106.294	5
		↑作業列	
 B1に
=A1-ROW(A1)/1000
 の様な式を入れます。

 すると、A列が同じ数字だった場合でも
 行の/1000が引かれるので 上側で出てきた物の方が
 数が大きくなります。

 このB列の値を使用し、RANK関数でランク付けします。

 今回は1000で割っていますが、
 全体人数や、A列の小数桁数によって
 変更してください。

 一番下の人の点数から引く数が
 A列の点数の最小位よりも小さく成るように
 割る数を決めて下さい。

 これは、簡単な例を挙げると
 元データが10.1(小数第1位まで)だった場合で
 A1-ROW(A1)/100 とした場合
  1番目は 10.1-0.01 = 10.09
 10番目は 10.1-0.1  = 10    と成ります。
 例えば30番目が 10.2 だった場合
      10.2-0.3  =  9.9 で
 10.1よりも下位に成ってしまいます。

 ですから、その様な事に成らないよう注意して下さい。

 (HANA)

	A	B	C	     D
1	198.2	2		
2	111.1	3	1位と2位の差	150.5
3	106.3	4	2位と3位の差	87.1
4	348.7	1	3位と4位の差	4.8
5	90.2	6	4位と5位の差	0
6	106.3	4	5位と6位の差	16.1

 106.3を 2箇所設定してみました。

 B列(RANK関数) で4位が2個 (内5位含む)で D列に差を
=LARGE($A$1:$A$6,ROW(A1))-LARGE($A$1:$A$6,ROW(A2))
で同位があっても 問題ないのでは (だれが何位という 指定するわけでもないので)

 (KANA )


 参考   成績ランク表の差を出したいには関係ないかも
	A	B    C     同点がある場合順位に差をつけたい場合	
1	198.2	2	198.2+0.0099	
2	111.1	3        111.1+0.0098	
3	106.3	4        106.3+0.0097   106.3097	
4	348.7	1        348.7+0.0096	
5	90.2	6         90.2+0.0095	
6	106.3	4        106.3+0.0094   106,3094    4位に差が出来 5位に	
 同点の場合上の行から順位優先   
  =LARGE($A$1:$A$6+(100-row($A$1:$A$6))/10000,ROW(A1))
 同点の場合下の行から順位優先 
 =LARGE($A$1:$A$6+row($A$1:$A$6)/10000,ROW(A1))
106.3097	の 右2桁が何行目のデータなのか(誰の)を表す数値になります。(補数 上の数式)
 (KANA )


 ANAさん、ありがとうございました。
この週末に仕上げてみます。
助かりました。
(MAC123)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.