Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
Rank同順位にしない,CountifとRank.EQのバグ?
投稿日時: 21/03/08 14:05:54
投稿者: おばちゃん

いつもお世話になります。
 
値が同じ時に同順位にしないようにCountifとRank.EQをちゃんと使用しているのですが、
D列の18行目が16位にならずに17位で同順位となってしまい、その下の行と同順位になってしまいました。
D列の数式は=COUNTIF(C$3:C3,C3)-1+RANK.EQ(C3,C$3:C$23,0)です。
 
表1の17、18行目の細かい小数点を17、18行目を0.5に変更し、表2に表示したところ、
ちゃんと動いていました。書き方が悪いのかエクセルのバグでしょうか?
 
Rankingに同順位あり↓
表1

COL→	B	C	D	E	F	G	H
ROW↓	Name	Data	Ranking		Countif	Rank.EQ	Ranking
3	A	10.268239	1		0	1	1
4	B	7.912833	2		0	2	2
5	C	6.102334	3		0	3	3
6	D	2.585528	4		0	4	4
7	E	2.308507	5		0	5	5
8	F	1.822565	6		0	6	6
9	G	1.731380	7		0	7	7
10	H	1.493450	8		0	8	8
11	I	1.493450	9		1	8	9
12	J	0.923403	10		0	10	10
13	K	0.804688	11		0	11	11
14	L	0.694546	12		0	12	12
15	M	0.671455	13		0	13	13
16	N	0.590323	14		0	14	14
17	O	0.590323	15		0	15	15
18	P	0.523262	17		1	16	17
19	Q	0.457691	17		0	17	17
20	R	0.430921	18		0	18	18
21	S	0.369361	19		0	19	19
22	T	0.319263	20		0	20	20
23	U	0.273754	21		0	21	21

 
Rankingに同順位なし
表2
COL→	B	C	D	E	F	G	H
ROW↓	Name	Data	Ranking		Countif	Rank.EQ	Ranking
3	A	10.268239	1		0	1	1
4	B	7.912833	2		0	2	2
5	C	6.102334	3		0	3	3
6	D	2.585528	4		0	4	4
7	E	2.308507	5		0	5	5
8	F	1.822565	6		0	6	6
9	G	1.731380	7		0	7	7
10	H	1.493450	8		0	8	8
11	I	1.493450	9		1	8	9
12	J	0.923403	10		0	10	10
13	K	0.804688	11		0	11	11
14	L	0.694546	12		0	12	12
15	M	0.671455	13		0	13	13
16	N	0.590323	14		0	14	14
17	O	0.500000	15		0	15	15
18	P	0.500000	16		1	15	16
19	Q	0.457691	17		0	17	17
20	R	0.430921	18		0	18	18
21	S	0.369361	19		0	19	19
22	T	0.319263	20		0	20	20
23	U	0.273754	21		0	21	21

投稿日時: 21/03/08 14:25:08
投稿者: おばちゃん

確認してたら表1の10,11行目も値が同じですね。

回答
投稿日時: 21/03/08 17:10:17
投稿者: radames1000
メールを送信

同じ環境ですが、表1で問題なく動いています。
最終行まで数式をコピーされていない、ということはないでしょうか。

投稿日時: 21/03/08 18:13:27
投稿者: おばちゃん

radames1000様
お返事ありがとうございます。
 
1,私も表1のデータを掲示板からエクセルに貼り付けたら、ちゃんと動いていました。
実際は小数点がもっとあります。(省略してしまっていました。)
元のデータだとちゃんと動いてくれないのですが、
掲示板に貼り付けたデータを区切り位置でスペース、タブで区切り
D列に数式=COUNTIF(C$3:C3,C3)-1+RANK.EQ(C3,C$3:C$23,0)を入れるとちゃんと動きます。
 
2,元データを小数点第6位で丸めた場合だと、ちゃんと動きます。
 
小数点持ちすぎとか数値(書式は数値にしてあります。)と扱っていないとかですかね?
 
不思議です。

COL→	B	C	D
ROW↓	Name	Data	Ranking
3	A	10.268238839489800000000000	1
4	B	7.912832749229940000000000	2
5	C	6.102333955627700000000000	3
6	D	2.585527765339160000000000	4
7	E	2.308506933338540000000000	5
8	F	1.822565104166670000000000	6
9	G	1.731380200003900000000000	7
10	H	1.493450085407810000000000	8
11	I	1.493450085407810000000000	9
12	J	0.923402773335414000000000	10
13	K	0.804687500000000000000000	11
14	L	0.694546346618367000000000	12
15	M	0.671455439814812000000000	13
16	N	0.590322757152183000000000	14
17	O	0.523261571556735000000000	15
18	P	0.523261571556735000000000	17
19	Q	0.457691055050504000000000	17
20	R	0.430921294223193000000000	18
21	S	0.369361109334166000000000	19
22	T	0.319263399801587000000000	20
23	U	0.273754385964912000000000	21


回答
投稿日時: 21/03/08 18:27:39
投稿者: んなっと

これだとどうなりますか?
=COUNTIF(C$3:C3,C3)+COUNTIF(C$3:C$23,">"&C3)

回答
投稿日時: 21/03/08 18:42:27
投稿者: んなっと

小数の微小な誤差に対するCOUNTIFとRNAKの感度の違いなのでしょうか。
ほかは下の表の値のままで、
 
C17だけ
=C18+2^-51
に変更してみてください。
 
  B           C  D  E
 3 A 10.2682388394898000  1  1
 4 B  7.9128327492299400  2  2
 5 C  6.1023339556277000  3  3
 6 D  2.5855277653391600  4  4
 7 E  2.3085069333385400  5  5
 8 F  1.8225651041666700  6  6
 9 G  1.7313802000039000  7  7
10 H  1.4934500854078100  8  8
11 I  1.4934500854078100  9  9
12 J  0.9234027733354140  10 10
13 K  0.8046875000000000  11 11
14 L  0.6945463466183670  12 12
15 M  0.6714554398148120  13 13
16 N  0.5903227571521830  14 14
17 O  0.5232615715567350  15 15 ←実は、下のセルよりわずかに大きい
18 P  0.5232615715567350  16 17
19 Q  0.4576910550505040  17 17
20 R  0.4309212942231930  18 18
21 S  0.3693611093341660  19 19
22 T  0.3192633998015870  20 20
23 U  0.2737543859649120  21 21
 
D3
=COUNTIF(C$3:C3,C3)+COUNTIF(C$3:C$23,">"&C3)
下方向・↓
E3
=COUNTIF(C$3:C3,C3)-1+RANK.EQ(C3,C$3:C$23,0)
下方向・↓

回答
投稿日時: 21/03/08 19:17:23
投稿者: んなっと

この式を勧めているわけではありません。
並べ替えるか丸めましょう。

回答
投稿日時: 21/03/09 09:08:50
投稿者: radames1000
メールを送信

いっそのこと、値に10億をかけてから順位を出してみてはいかがでしょう。

投稿日時: 21/03/09 09:53:03
投稿者: おばちゃん

んなっと様
ありがとうございます。
表1では昇順になっていますが、必ずしも昇順とは限らないし、マイナスの値もあるので(言ってなかったのですいません。)
教えて頂いた数式だと難しいですね。
 
radames1000様
ありがとうございます。
今のところ、小数点第6位までに値を変更してRank.EQするとちゃんと動くので、それで対応する事にしました。
 
 
色々、ありがとうございました。