- 締切済み
エクセルでセルが E6 E21 E36 E51 E66 E81 E96
エクセルでセルが E6 E21 E36 E51 E66 E81 E96 E111 E126 E141 E156の数字を元にのC列の同じ行に順位として大きい数字から1位、2位のように関数を組みたいのですがどのようにしたら良いのでしょうか? 例えばE36が10 E111が5 E156が8でしたらCの36に1 C11
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答4です。 C列に他のデータがあるときにC1セルに式を入れて下方にオートフィルドラッグはできないでしょう。その時はどこかのセルに =RANK(INDEX(E:E,ROW()),H:H)を入力してからこの式をコピーして、C列の該当するセルに貼り付けを次々に実施すればよいでしょう。
- KURUMITO
- ベストアンサー率42% (1835/4283)
とびとびのセルを式の上で指定するのは面倒なことですし、式も複雑になります。作業列を作って対応するのがよいでしょう。 例えば次のようにします。 G1セルから下方に6,21,36,51,66,81,96,111,126,141,156のように入力します。 次にH1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(G1="","",INDEX(E:E,G1)) 最後にC1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(G:G,ROW()),RANK(E1,H:H),"") これでC列の該当する場所には順位が表示されますね。 なお、I1セルに次の式を入力して下方にオートフィルドラッグすればI列にはG列に表示した行での順位が表示されますね。 =IF(H1="","",RANK(H1,H:H))
- keithin
- ベストアンサー率66% (5278/7941)
>E6 E21 E36 E51 E66 E81 E96 E111 E126 E141 E156の数字を元に コントロールキーを押しながらこれらのセルを順繰りクリックして飛び飛びに選択していき, 名前ボックス(数式バーの左端に通常A1などと表示が出ているところ)に「対象」と記入してEnterします。 C6セルに =RANK(C6,対象) と作成し,他のセルにもコピーします。 名前の範囲を間違えたり変更したいときは,2003までのExcelでは挿入メニューの名前の定義,2007では数式タブの名前の管理で修正します。 #あるいは 参考程度ですが, =SUMPRODUCT((MOD(ROW($E$6:$E$156),15)=6)*($E$6:$E$156>E6))+1 などのような計算でも出来ます。 極めて多数の飛び飛びのセル範囲を対象にしたくなった時などに使えますが,そういうシチュエーションであれば実際には別に空き列を用意し,該当の行(6,21,36…)の値だけそちらに再掲して(他の行は空っぽのままにしておいて) =RANK(E6,E:E) などのように計算させた方が簡単です。
- MackyNo1
- ベストアンサー率53% (1521/2850)
飛び飛びのセル範囲を、以下のようにかっこでくくって1つの範囲にしたRANK関数を使ってください。 =RANK(E6,($E$6,$E$21,$E$36,$E$51,・・・・・・,$E$156),2)
- kmetu
- ベストアンサー率41% (562/1346)
RANK関数が利用できませんか?
お礼
皆様教えて頂きありがとうございました。大変助かりました。