• ベストアンサー
  • 困ってます

Excel 複数範囲で順位付け

MS-Excelで、複数の範囲において、それぞれの値の順位を調べようと思い、AVERAGE関数やMAX関数などと同様に、RANK関数でも複数の範囲を指定してしようとしたのですが、範囲をカンマで区切るのはできないようです。 たとえば、 範囲:A1:A5,C1:C5 調べたい数値が入っているセル:A1 のときに、 RANK(A1,A1:A5,C1:C5) とすると、RANK関数の書式は、 RANK(数値,範囲,[順序]) なので、C1:C5が順序扱いとなり、エラーになってしまいます。 複数範囲に名前をつけて、範囲に名前を指定してみましたが、それでもエラーになりました。 どうすれば、複数の範囲において順位を調べられるのでしょうか? RANK関数にはこだわっていません。 マクロでも構いません。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数2632
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.1
  • mu2011
  • ベストアンサー率38% (1910/4994)

>複数範囲に名前をつけて、範囲に名前を指定してみましたが、それでもエラーになりました。 ⇒A1:A5,C1:C5を選択し、名前付けでエラーになりませんので、再度お試し下さい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

あれ?・・・と思って調べてみたら、名前を付ける範囲を間違えていて、循環参照になっていたみたいです。 私の単なるポカミスでした。 回答者様のおかげでポカミスに気づくことができました。 どうもありがとうございました。

関連するQ&A

  • エクセルのRANK関数についてです。

     エクセルを使っていまして、その中の関数にRANKという関数があるわけですが、書式は =RANK(数値,範囲,順序) になりますが、この範囲のところにSUM関数を入れることはできるのでしょうか? =RANK(数値,SUM(B2:B5),順序) という形でSUMをRANK関数の中に入れることは可能でしょうか?私自身も何度も試してみましたが「入れた数式は正しくありません」というエラーが出てしまいました。

  • excel rankで範囲を複数のシートから指定する?

    excelで複数のシート(仮にsheet1,sheet2)のA列の複数行に数値が入っています。 それぞれのシートのA列のとなりの列にsheet1,sheet2のA列にある全ての数値の中での順位を出したいです。 rankを使うときに範囲を複数のシートにまたがって指定できますでしょうか? よろしくお願いします。

  • 同順の場合の順位について(2回目)

        A    B    C    D   E    F    G 1   社長   2    60(点) -   1(位)次長   75(点) 2   次長   1    75    -   2   社長   60 3   部長   2    60    -   2   部長   60  4   係長   4    55    -   4   係長   55 5    -    -     -     -    -     -    - 6    1 (位) エラー   75(点)-   -    -     - 7    2    エラー    60   -   -    -    - 8    2    エラー    60   -   -    -    - 9    4    エラー    55   -   -    -    - E1=RANK(LARGE($C$1:$C$4,ROW(A1)),$C$1:$C$4) G1=LARGE($C$1:$C$4,ROW(A1)) F1=IF(E1="","",INDEX($A$1:$A$4,LARGE(INDEX((C$1:C$4=G1)*ROW($A$1:$A$4),),COUNTIF($E$1:$E$4,E1)-COUNTIF($E$1:E1,E1)+1))) 上記なら、きちんと順位、順位の名前、点数が入ります。 A1=RANK(LARGE($C$1:$C$4,ROW(A1)),$C$1:$C$4) C1=LARGE($C$1:$C$4,ROW(A1)) B6、B7、B8にどういう関数が入りますか? 教えて頂けますか。 他にも何か良い方法がないでしょうか。 1位から100位までありますので、やり方が分からず焦ってます。

  • 順位をつける範囲について

    以下のようなデータがあります。   A  B 1 あ 3.0 2 あ 3.0 3 あ 3.0 4 あ 3.0 5 い 1.5 6 い 1.5 7 あ 3.0 8 あ 3.0 9 い 1.5 10 い 1.5 11 う 6.8 12 う 6.8 この「あ」「い」「う」の順位を決定するのに、C列にRANK関数を使って範囲をB1:B12にすると   A  B   C  D 1 あ 3.0  5  2 2 あ 3.0  5  2 3 あ 3.0  5  2 4 あ 3.0  5  2 5 い 1.5  1  1 6 い 1.5  1  1 7 あ 3.0  5  2 8 あ 3.0  5  2 9 い 1.5  1  1 10 い 1.5  1  1 11 う 6.8  11  3 12 う 6.8  11  3 となります。でも実際には順位はD列のようにならないといけないですよね。 A列の「あ」「い」「う」がアトランダムにある場合に(A列のどこに存在しても)D列のような順位を出す方法を教えてください。 よろしくお願いいたします。

  • エクセルでの関数の表記について

    よろしくお願いいたします。エクセルでランクをつけるとき、例えば=RANK(A1,A1:A5)などのように入力すると思います。何台かあるコンピュータのうち、一台のエクセルだけ=RANK(A1;A1:A5)となります。関数の区切りがカンマでなくセミコロンになってしまいます。この1台のエクセルを通常のようにカンマで関数を区切りたいのですが,エクセルにそのような設定個所はありますか?関数を直接入力しなければいいのですが,直接入力した場合カンマではエラーになってしまうのでどなたかお詳しい方お教えください。

  • エクセルの選択範囲の同期について

    エクセルでの質問です。 A1のセルでC列を合計し、「=SUM(C1:C5)」 B1のセルでいくつカウントしたのかを知りたい場合、どう書けばいいでしょうか。(この場合B1のセルには「5」とあらわれてほしいです) 「=count(C1:C5)」と書ければ楽なのですが、A1のセルに数値が入っていなかったり、範囲の書き換えなどがよくあるのでB1には自動でカウントしてほしいのです。 よろしくお願いします

  • =COUNTIF関数で複数の範囲を指定できないでしょうか

    =COUNTIF関数で複数の範囲を指定できないでしょうか 例えば N3:P5 Q3:V3 N6:N11の範囲に3がいくつあるかを数えたいのですが 3つをカンマで区切って指定しただけではエラーになってしまいます COUNTIF関数を3つならべて合計すれば目的は達せられそうですが もう少しスマートな方法はないものか アドバイスよろしくお願いします ちなみにExcel2007です

  • RANK関数で同じ計算結果なのに順位が変わる

    B1に2.98 C1に2.95 D1に2.94 B2に2.97 C2に2.98 D2に2.92 と言う数値が入っています。 そして、E1~2にはAVERAGE関数で平均を求めています。 その平均を元にF1~2にRANK関数で順位付けをすると平均の値は同じなのに、順位は変わります。 何故なんでしょうか? ちなみにE1に入れている数式は、 =RANK(E1,$E$1:$E$3,0)です。 3行目はわかりやすいように任意の数値を入れています。 自分で検証としては、平均の式の結果を「形式を選択して貼り付け」で値のみ貼り付けをしても結果は変わらなかったのですが、その後、ダブルクリックでカーソルを式内に入れてEnterを押すと正しく表示されました。 合計でランク付けをしても同じ結果ですし、 並び替えてみても、その順番に並び変わるので、 計算式の仕様なのかなと思うのですが、 解決方法があれば、お願いします。 もしくは、どちらが上に来るかわかるようであれば。 よろしくお願いします。

  • RANK関数の基本?

    教えてください。 順位をつける表があります。(元の問題は、「合計点をもとに成績の順位を求めましょう」です) RANK関数をつかったのですが、=Rank(数値、セル範囲、順序)と なりますよね。 で、答えを見ると順序が、省略されています。(0は省略できますよね) 問題には、昇順とか、降順は全く表示されていません。 これは、順位をつける関数は、順序は降順(点数(数値)の高い順でつける)でつけるのが当たり前という概念に基づいているからなんでしょうか。 宜しくお願いいたします。

  • 特定範囲の不規則なセルを集計・順位付けしたいのですが・・・

    A1~A50の範囲に、1-1~8-8の64個の文字列がランダムに入る可能性があるのですが、 その範囲内に出て来た文字列をカウントし、順位を付けるには どうすればよいのでしょうか?順位はRANKで行けると思うのですが、 最初のカウントがどうにも出来ず困っています。

専門家に質問してみよう