- ベストアンサー
エクセルの関数RANK
エクセル2000を使っています。RANK関数でランクを出したいのですが、範囲がA列だけでなくB列、C列にもあります。これらのはなれたデータを範囲にできますか?Ctrlを押しながらドラッグすると複数の範囲は選択できるのですが、エラーが出てしまいます。できるなら方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
範囲が飛び地でなければ、CTRLを押しながらの範囲指定で可能です。(RANK関数を複数のセルで使うのであれば、絶対番地にするのをお忘れなく) 飛び地の場合は、#1の方の通り名前を定義すれば可能です。 定義の方法は、CTRLを押しながら範囲を指定し、左上の名前ボックスに直接名前(例えばDATA)を入力し、 =RANK(A1,DATA,0) とすれば、OKです。 DATAが、絶対番地なのでそのままコピーできます。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
ユーザー関数(名前は何でも良いが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
お礼
ありがとうございます。参考になりました。
- snoopy64
- ベストアンサー率42% (337/793)
A1~A10に1~10 B1~B10に11~20 C1~C10に21~30 D1に=RANK(A1,$A:$C,0) とやったら30と出ましたよ! 頑張ってくださいヽ(^。^)ノ
お礼
ありがとうございます。参考になりました。
- akio_myau
- ベストアンサー率34% (515/1480)
範囲に対して名前を定義したら どうでしょうか。
お礼
ありがとうございます。参考になりました。
お礼
ありがとうございます。参考になりました。