エクセルでのランクの出し方

このQ&Aのポイント
  • エクセルでのランクの出し方について説明します。空白を0として順位を出すという問題がありますが、解決方法として、特定の条件を満たすデータのみで順位を表示する方法があります。
  • エクセルでのランクの出し方について解説します。空白を0と計算してしまい、順位が正しく表示されない問題がありますが、特定の条件を満たすデータのみで順位を出す方法を紹介します。
  • エクセルでのランクの出し方についてご説明します。空白を0として順位を出してしまう問題がありますが、一部のデータのみで順位を表示する方法をご紹介します。
回答を見る
  • ベストアンサー

エクセルでのランクの出し方

以下のような表でランク関数を使うと、空白(計算式は入っています)を0と計算して順位をだしてしまいます。    A   B   C   D  E 1 山田  50   40  90  1 2 加藤 -75   20  -55  4 3 田中  25  -60  -45  3 4                  2 D列にB,Cの合計を求める式として、=IF(A1="","",SUM(B1:B2)という数式を入れています。この表のデータは2人~4人になる可能性があります。 E列には、=RANK(D1,D1:D4)という数式が入っています。 そうしますと、セルD4を0とみなすのか、E4に順位2が入ってしまいます。 このD4を空白とみなし、1位から3位までで表示する方法はありますでしょうか?

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です! たびたびごめんなさい。 前回は「0」を無視しての回答になってしまいましたね。 補足を読ませてもらえば、あまり難しく考えなくて、 オーソドックスに D1セルに =IF(D1="","",RANK(D1,$D$1:$D$4)) (D1~D4セルの範囲限定) としてオートフィルで下へコピーではダメでしょうか? 「0」も空白も同ランクになりますので、空白の場合は表示しないという考え方です。 これで、空白は無視して、「0」はRANK関数の候補の中に入ると思います。 以上、お役にたてば幸いです。 何度も失礼しました。m(__)m

ninnnaji
質問者

お礼

いろいろご指導ありがとうございました。 =IF(D1="","",RANK(D1,$D$1:$D$4)) 上記、数式で完璧でした、 お忙しい時間をさいて、大変申し訳ありませんでした。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! ちょっと強引な方法になります。 空白セルにRANK関数の数値が入るということは 質問にあるとおり「0」として認識されていると思いますので、 E1セルの数式を =IF(D1=0,"",IF(D1>0,RANK(D1,$D$1:$D$4),RANK(D1,$D$1:$D$4)-COUNTIF($D$1:$D$4,0))) としてオートフィルで下へコピーしてみてください。 たぶん希望に近い形になると思います。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

ninnnaji
質問者

補足

tom04様 お忙しい所、ご回答いただきありがとうございました。 早速、上記の数式を入れ込んだところ、希望通りの結果になりました。 ところが、D列の合計のところは、場合によっては、0になる可能性があるため、この数式では、合計が0になった場合、無視してしまいます。 もし、他に良い、方法が思いつきましたら、ご伝授下さい。

関連するQ&A

  • (Excel)RANK関数で同じ値なのに違う順位になる

    Excel2000を使用しています。 下記の表を作成して、  F列には、=SUM(A1:E1)-MIN(A1:E1)-MAX(A1:E1)  G列には、=RANK(F1,$F$1:$F$4) を入力していますが、 F2とF3は同じ値になるのに順位が違って出てきます。 確か、RANK関数は同値の場合同じ順位が出てくると思うのですが、 そうならないので困っています。 ちなみに、F列に数式ではなく計算結果を直接入力した場合には 同じ順位が出てきました。 どうしてそのようなことになってしまうのでしょうか? ご存知の方がいましたら教えてください。 (A) (B) (C) (D) (E) (F) (G)  9.50  9.20  9.35  9.60  9.45 28.3000  1  9.40  9.30  9.35  9.55  9.45 28.2000  2  9.20  9.45  9.40  9.35  9.55 28.2000  3  9.45  9.30  9.30  9.40  9.50 28.1500  4 宜しくお願いします。

  • エクセルで同じ言葉が入っているセルの中でのランクづけ 

    エクセルで同じ言葉が入っているセルの中でのランクづけ  いつもお世話になっています。 このようになっている表があります。 A      B       C       D         E 001    田中     りんご     3.8 002    山田     りんご     2     003    佐藤     なし      3.1 004    鈴木     桃       1.2 005    小林     なし      0.8 006    大田     りんご     3.5 007    加藤     桃       2.4 008    磐田     桃       1.9 のようにA列に数字B列に名前C列に言葉D列に数字が入っているのですが、E列に 「「りんご」を選んだ人の中でのDの数字の順位」を入れたいのです。 具体的には A      B       C       D         E 001    田中     りんご     3.8        1 002    山田     りんご     2         3 003    佐藤     なし      3.1        1 004    鈴木     桃       1.2        3 005    小林     なし      0.8        2 006    大田     りんご     3.5        2 007    加藤     桃       2.4        1 008    磐田     桃       1.9        2 となってほしいのですが、可能でしょうか?ランクは数字の大きい方が上位です。 よろしくお願いします。

  • Excelのrankがおかしい

    少々面倒なのですが、どうしても解決できないのでお教えください。   A   B    C   D 1:結果1 結果2  合計  順位 2:8    8    16    1 3:8.275  7.325  15.6   2 4:7.125   8.475  15.6   3←どうして? 5:6    6    12    4 Cの列は「=SUM(A2,B2)」のようにしています。 Dの列は「=RANK(C2,C$2:C$5,0)」のようにしています。 順位は1、2、2、4となって欲しいのですが、上のように1、2、3、4となってしまいます。 A3、B3、A4、B4の値を変えると1、2、2、4になるのですが、上の値だとどうしてもなりません。 面倒ですが、どうしても解決できないので、お教えください。

  • RANK関数について

    エクセルでこんな感じの表があります。 A1■B1■C1■D1■E1■F1■G1■H1 12■13■23■66■93■89■72■29 ランク関数をつかってそれぞれの順位を出したいのですがうまくいきません。 数式には=RANK(A1,A1,C1,E1,G1,0)と入力してあります。範囲を指定する際にA1,C1,E1,G1のような、連続していないセルを指定しては、計算できないものなのでしょうか? どなたかご教授ください

  • 限定範囲内の数値に対するRANK関数について

    エクセルについての質問です。    A  B   C  D 1    11 22 33 2    10 20 30 3    15 25 36 4    12 24 36 5    18 27  A列にRANK関数を使い「順位を入れたい」のです。 ただし以下のような決まりがあります。    (1)D列にて値が33以上の数値を対象とし、    (2)B列の数値を降順にランク付け 結果としては以下のようになる数式を目指していますがそのような関数はできますでしょうか。    A   B   C  D 1  3  11 22 33 2     10 20 30 3  1  15 25 36 4  2  12 24 36 5     18 27  対象がD列だけの数式でしたら 例えばA1のセルに  =IF(OR(D1<33,D1=""),"",RANK(D1,$D$1:$D$5,FALSE)) と入力し、他のA列へコピーすれば良いと思うのですがさらにその結果を対象とした数式がどうにもよくわかりません。 お分かりの方いらっしゃいましたら教えて頂けますでしょうか。

  • rankは配列数式で使えないのでしょうか

    たとえばA列とB列(各列3行までデータがあるとする)の和の順位をC列に返したいとき、C1に {=RANK($A1+$B1,$A$1:$A$3+$B$1:$B$3)} と入れましたが計算してくれませんでした。1列和の列を用意せずにダイレクトに順位を返すことはできないでしょうか?アイディアがあればお聞かせ願いたく存じます。

  • excelの計算式のコピーが出来なくなった。

    Excelで表を作成して、A列の下部にSUMで合計を出して、選択をして 右にドラッグして、B,C,D,E,の合計を出していたのですが、 突然、計算式のコピーが出来なくなり、A列の合計が そのまま B,C,D,Eにコピーされるのです。  B列に移動したときはB列のSUMとなっているのですが、確定しますとAの値になります。 理解できなくて?  助けてください。

  • Excelで、複数列の和を求める式

    Excelで、A1~A10,B1~B10,C1~C10,D1~D10にそれぞれ値があり、E列に、E1にA1からD1までの和、E2にA2からD2までの和、のようにE10まで出したいと思います。E1=SUM(A1:D1)として、下にコピーすればできますが、「E1からE10までの配列数式」として求める式はありますか。SUMの":"と、配列数式の":"が重複してうまくできません。

  • エクセルでこんな事できるのでしょうか?

    みなさん、こんにちわ! エクセルの計算式もしくはVBAどちらでも構いません。 以下の事が可能になるでしょうか? 運動会に使うデーター資料として A列は、走る子供のゼッケン番号です。 B列には順位。 A・B列は手入力します。 そしてB列の順位を他の表で使う為、C列・D列・E列に1位から3位までの順位を列単位に表示を変更しています。 このC・D・E列を計算式もしくはVBAで自動的にB列から抜き出す事が出来ないでしょうか? 9行目からC・D・E列の数字が変わっているのは1回目の競争と2回目の競争の為です。 また、運動会ですので毎回走る子供の人数が違います。    A B C D E 1   3 1 3 4 8 2   4 2 3 4 8 3   8 3 3 4 8 4   2 4 3 4 8 5   1 5 3 4 8 6   5 6 3 4 8 7   7 7 3 4 8 8   6 8 3 4 8 9   6 1 6 3 7 10   3 2 6 3 7 11   7 3 6 3 7 12   4 4 6 3 7 13  1 5 6 3 7 14  2 6 6 3 7 15  5 7 6 3 7

  • EXCELの縦横変換

    エクセルの数式で、横に並んでいるものを、縦にしたいのですがわかりません。 良い方法を教えてください。初心者です。 (1)sum(a1:a100)(2)sum(b1:b100)(3)sum(c1:c100)(4)sum(d1:d100) ※見にくくて申し訳ありませんが、()の数字は列を表します。 上記の表で作成した結果を下のような別シートに縦の表に写したいのですが。 1 =sum(a1:a100)の結果 2 =sum(b1:b100)の結果 3 4 データが300列位あるので、なにかいい方法を教えてください。 よろしくお願いします。