重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

excelで成績の順位をつけるためにrank関数を使っています。範囲を指定するときに、一行おきの数値を対象としたいのですが、どうすればいいでしょうか。今は、例えば =RANK(a2,(b2,b4.b6,b8....),0)というように100行程指定してます。a列に順位、b列に数値が入っています。奇数行は点数、偶数行はパーセンテージを入力してあります。パーセンテージの順位をつけたいのです。奇数行の点数は3列を使って3種類の数値からなっていますので、列と行の構成を変えることはしたくありません。

質問者からの補足コメント

  • ありがとうございます。質問を少し間違えていました。順位をつける対象の行は奇数行でした。どこを直せばいいのでしょうか?宜しくお願い致します。

    No.4の回答に寄せられた補足コメントです。 補足日時:2017/02/18 12:51

A 回答 (4件)

こんにちは!



具体的なレイアウトがよく判らないのですが、
>偶数行はパーセンテージを入力してあります。
というコトですので、
A列の偶数行の順位を大きい順に順位付けしたい!というコトですよね?
D列に表示するとします。D2セルに

=IF(OR(A2="",MOD(ROW(),2)=1),"",SUMPRODUCT((MOD(ROW(A$2:A$1000),2)=0)*(A$2:A$1000>A2))+1)

という数式を入れフィルハンドルで下へコピーではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。なんとかできました。どうしてsumproductを使って順位がつくのかよく理解できませんが勉強します。

お礼日時:2017/02/18 15:29

>列と行の構成を変えることはしたくありません。


こういうのは、Excelの数式のパズラーとの凌ぎ合いなんだろうと思いますが、Excelの実務的では、何か越えてはならないようなものを越えてしまった感があります。ご自身で解決するには、補助列を置いてやれば、かならず解けるはずです。

B列
数値

90
11.4%  ←ここをどうやって数字を出しているかにもよりますね。
55
7.0%
78
9.9%
86
10.9%
32
-----------------
条件的に、2つ。
・パーセントを出す時に、合計をこの列から拾っていないこと。
 また、一旦、合計を定数が変えてから、パーセントを出すこと。
・パーセント以外の数字は、整数に限るか、1より大きいこと。

C列
=IF(B3>1,"",COUNTIF($B$3:$B$100,">" &B3)-COUNTIF($B$3:$B$100,">"&1)+1)

これは、Excelを習い始めた頃の数式ですが、こういう数式で順位がでます。

また、それよりも、もっと古い関数ですが、
=CELL("format",B4) とすると、P1 とか出てきますから、それで、パーセントと他の数字とを区別しても良いと思います。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。いろんな方法があるんですね。まだ、私にはちょっと難しいかもしれませんが勉強させていただきます。

お礼日時:2017/02/18 15:32

%という事は1(100%)〜0(0%)でしょうか?


点数が%の値と被らない、或いは0の場合のみを含む。というのであれば、
そのまま順位を付け、1以上或いは、1を超える数字、の数を引けば、
1以下或いは、1より小さい数のみでの順位が分かります。
    • good
    • 0
この回答へのお礼

ありがとうございます。もう少しexcelの勉強をしてみます。

お礼日時:2017/02/18 15:33

「現在、100行程度指定している」とのことですが、その根性があるのであれば、例えば、B2,B4,B6,…のセルに「パーセンテージ」という名前を付けて、数式を =RANK(A2,パーセンテージ,0) とするだけでも十分わかりやすくなるような気がします。

    • good
    • 0
この回答へのお礼

ありがとうございます。やってみたらスッキリしました。でも、勉強のためにsumptoductを使った式を使いました。

お礼日時:2017/02/18 15:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!