• ベストアンサー

エクセルの関数RANK

エクセル2000を使っています。RANK関数でランクを出したいのですが、範囲がA列だけでなくB列、C列にもあります。これらのはなれたデータを範囲にできますか?Ctrlを押しながらドラッグすると複数の範囲は選択できるのですが、エラーが出てしまいます。できるなら方法を教えてください。

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

  • ベストアンサー
回答No.3

範囲が飛び地でなければ、CTRLを押しながらの範囲指定で可能です。(RANK関数を複数のセルで使うのであれば、絶対番地にするのをお忘れなく) 飛び地の場合は、#1の方の通り名前を定義すれば可能です。 定義の方法は、CTRLを押しながら範囲を指定し、左上の名前ボックスに直接名前(例えばDATA)を入力し、 =RANK(A1,DATA,0) とすれば、OKです。 DATAが、絶対番地なのでそのままコピーできます。

mikenekosuki
質問者

お礼

ありがとうございます。参考になりました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

ユーザー関数(名前は何でも良いがrankxとした)を作ると、範囲が飛び離れていても、出来ました。 Function rankx(b) Dim a As Range Set a = Union(Range("a1:c6"), Range("a9:c10")) rankx = Application.WorksheetFunction.Rank(b, a) End Function 上記コードを、VBEのモジュール画面に貼りつけます。 (例データ) A1:c6に 11 23 4 23 4 5 34 1 5 54 56 45 3 34 23 22 A9:C10に 11 34 12 102 (使い方)普通の関数と同じ。ただし範囲はビルトインされているので固定。 =rankx(102)結果は1 =rankx(56)結果は2 =rankx(45)結果は4

mikenekosuki
質問者

お礼

ありがとうございます。参考になりました。

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.2

A1~A10に1~10 B1~B10に11~20 C1~C10に21~30 D1に=RANK(A1,$A:$C,0) とやったら30と出ましたよ! 頑張ってくださいヽ(^。^)ノ

mikenekosuki
質問者

お礼

ありがとうございます。参考になりました。

  • akio_myau
  • ベストアンサー率34% (515/1480)
回答No.1

範囲に対して名前を定義したら どうでしょうか。

mikenekosuki
質問者

お礼

ありがとうございます。参考になりました。

関連するQ&A