• 締切済み

エクセルvbaで、ランク順に配分する

たとえば、1位~5位まで順位を成績順に決めて、賞品3つ(商品の数は毎回変動する)を1つずつ上位から分けたいのですが、vbaで上記を行うにはどう記述すればよいでしょうか。 イメージは、賞品の数が書いてあるセルがあり(上記の例では3)、そのセルの数値が0になるまで上位から分けていく、というものです。商品の数によっては当たらない人もいます。よろしくお願いします。

みんなの回答

回答No.1

例えば添付画像のような関数ではいけないのでしょうか? どういうシートに対しての処理なのかわかりませんので何とも言えませんが…

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel VBAでランク上位から配分する方法

    たとえば、1位~5位までの順位を成績順に決めて、賞品3つ(商品の数は毎回変動する)を1つずつ上位から分けたいのですが、vbaで上記を行うにはどのように記述すればよいでしょうか。 イメージは、賞品の数が書いてあるセルがあり(上記の例では3)、そのセルの数値が0になるまで上位から分けていく、というものです。商品の数によっては当たらない人もいます。よろしくお願いします。

  • エクセルのRANK関数の応用

    エクセルのRANK関数を使って、順位を表示させたいのですが、 空白セルと、"0"の値が1位にカウントされてしまいます。 これを除外して表示させる方法は無いようなので、 これをVBAで作る事は出来ますでしょうか? "0"と空白セルは除外し、数値の小さい順に表示させたいのです。 以上よろしくお願いします。

  • エクセル2010でRANK関数に条件を付けるとき

    エクセル2010を使っている者です。 RANK関数で順位をつけても同順位だった場合、他の条件で判定することは可能でしょうか? 過去の質問も見たのですが、私のしたいこととは違う事例なんですね。 具体的には、添付画像のような表でドント式で順位をつけようと思っています。 オレンジ色にしたセルに、一つ右のセルの値について数値の高い順に順位をつけていき(全列のオレンジ色のセルの右の値の中での順位です)、値が同じであれば「総数」の値の大きい列のセルのほうが上位になるというようにしたいと思っています。 どうぞ、よろしくお願いいたします。

  • エクセルVBAの記述について

    OSはWin98、エクセル2000です。 次の処理をVBAで処理したいのですがうまく作動しま せん。 ご教授願います。 セルA1から下に向かって1から20までランダムに数 値が入ってます。 同じ数値は無く、数値も3行(セルA3)で終わる場合 も有ります。 この場合セルC1から下に向かって順にA1&A2、A 1&A3と記述したいのですが・・・ 例) A1に5、A2に7、A3に15、A4に10でしたら C1に57、C2に515、C3に510、C4に715 C5に710、以下・・・と記述 よろしくお願いします。m(_ _)m

  • エクセルVBAでどうしても参考書通りにならない!!

    私はFOMエクセルエキスパートの問題集をもとに勉強しています。 あるVBAの問題でどうしても結果が同じようにならないのです。 問題は、最初から、形のあるシートAに「来場者数ベストという名前でマクロの記述」記述内容「来場者数が多い順⇒上位3件のレコードを青、セルA1を選択」   次に「リセットという名前でマクロの記述」⇒記述内容「上位3件のレコードを黒、ナンバー順に並びかえる、A1を選択」 この2つのマクロをシートAに「ボタン」として2つ作りました。この時点では、問題はありません。どちらのボタンを押してそれぞれのマクロが記述されます。 この後のVBAでひっかかっています。 VBEを使ってマクロ「来場者数ベストの上位3件のレコードが青であったものを、上位5件のレコードを赤にする。」そうすると、なぜかここでもう一方のマクロ「リセット」の方の表の一覧に、指定もしていないのに「赤のレコードが2件」出てくるのです。 なぜでしょう? 文字だけで、説明しております。なかなかお伝えづらいのですがご回答いただけるのであれば是非よろしくお願いします。

  • RANK関数の基本?

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

  • Excel VBA 組み合わせパターン

    A1~A5 に、順に 「あ」「い」「う」「え」「お」が入っています。 B1に「3」を入れたとき C1以降、各セル1文字ずつで、 あああ ああい ああう …(略) おおえ おおお といった具合に表示させたいのです。 VBAで簡単にできるでしょうか。 ※A列のデータ数は変動します。

  • Yahooディレクトリのランクについて

    サーチエンジンでの上位表示対策という意味において Yahooディレクトリのランク(順位付け)についてお尋ねいたします 僕は以前からABC順やあいうえお順とばかり思っていたのですが、そうではないようです 結構順位の変動があるようなのですが、どういう要因で順位が決まるのでしょうか?

  • エクセルであるデータの個数を表示させる方法について

    以前エクセルで10人の順位(順位は関数を用いました。また、当該順位を決めるための検査を10回行っているものとする)について、上位三人を条件付き書式を用い下位三位と条件設定(この場合における数値は、小さい方が上位の順位を示すことになるから)した上でセルを緑色にすること・下位三人を同じく条件付き書式を用い上位三位と条件設定(この場合における数値は、大きい方が下位の順位を示すことになるから)した上でセルを赤色にしました。 その10人の成績の決め方はあるものを有している個数で、ただ当該10人が異なる所有数であればよかったのですが、残念ながら数値が同数の人が上位・下位それぞれ三位内にいました。 その場合、たとえば下位四人の数値が同じときその四人には六位(同一六位で四人)が付くと思い、その状態で条件付き書式を用いると下位四人のセルが赤色になると思われます。 それはそれでいいのですが、個人的にはcountifを用い10回行った結果として各10人それぞれが下位三位になった回数(たとえば、Aさんは2回・Bさんは5回など)も記載したいと思っており、ただ前段落に記載したような六位が四人などのケースの場合、六位と記載されることにより七位以下とはカウントされないと思われます。 そのためやり方を変え、当該各10人それぞれについている赤色のセルの数(たとえば、Cさんに1つなど)をカウントすることにしましたが、方法がわかりません。 そこで質問ですが、条件付き書式などで赤色のセルになった個数をカウントするためには、どのようにすればいいでしょうか。

  • セルの文字式の計算をVBAで行いたい

    A1のセルに "100+5n" という文字式が入っている状態で VBAにてこのセルの文字式計算を行いB1のセルから順に結果を出力したいと思っています。 "n"は1から順に指定された数まで1づつ増えていくようにし B1のセル:105、C1のセル:110、D1のセル:115 ・・・・ と結果がなるようにしたいのですが、VBAでどのように記述すればいいのか悩んでいます。 VBAを使わずにExcelの関数で計算できるのならそれでもよいと思っています。