• ベストアンサー

抽選をおこない

ある会の抽選を行うとき、A列に応募者数、B列に応募者数に応じてRAND関数を入力し、上位20名を当選としています。応募者数は毎回異なりますので、応募者数に応じて、RAND関数が自動的に入力されるマクロを作りたいのです。マクロに詳しい方のお答えをよろしくお願いします。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

Sub try() With Range("A2", Cells(Rows.Count, 1).End(xlUp)).Offset(, 1) .Formula = "=Rand()" .Value = .Value End With End Sub 一例になれば。

kantoku326
質問者

お礼

短い構文でわかりやすく、行おうとすることができました。 おれいおそくなりごめんなさい 使わせていただきます。

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

その他の回答 (2)

  • jin34
  • ベストアンサー率80% (17/21)
回答No.3

RAND関数はセルに何か入力するごとに反応して戻り値を変えてしまうところが曲者だと思います。 自分ならRAND関数で値を取得してそれをセルに入れるマクロを使うかな。 セルA2以下に応募者の番号が入っていると仮定して、以下のマクロを実行。 Sub test() Dim i As Integer Dim myrnd As Double For i = 2 To Range("A65536").End(xlUp).Row Do While Range("B" & i) = "" myrnd = Rnd If WorksheetFunction.CountIf(Columns(2), myrnd) = 0 Then Cells(i, 2).Value = myrnd Exit Do End If Loop Next i End Sub

kantoku326
質問者

お礼

お礼遅くなり大変失礼しました。 できました!! ありがとうございました。 マクロを勉強しておりますが、なかなか身につきません。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

例えばA1セルに応募者数の文字が有り、B1セルにその数を50などと入力します。 A2セルには応募者番号、B2セルには乱数の文字が有るとします。 A3セルから下方に1からの番号を付けるとしてA3セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>B$1,"",ROW(A1)) B3セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>B$1,"",RAND()) C2セルには当選者と文字を入力し、下方には20名の応募者番号を表示させることにします。 C3セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>MIN(B$1,20),"",INDEX(A$3:A$1000,MATCH(SMALL(B$3:B$1000,ROW(A1)),B$3:B$1000,0)))

kantoku326
質問者

お礼

マクロを使わなくてもできのですね。  関数なら私にも何とか理解できます。 ありがとうございました。

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

関連するQ&A

  • EXCELを使って抽選

    400人程度から250人程度をEXCELで抽選する問題です。 A列:受付順に氏名を記入 B列:A列の氏名を「あいうえお」順に並べ替え C列:RAND()でランダム数を表示 D列:一度C列をコピーし、RANK関数で順位づけ これでB列とD列を対比すれば誰が何位かがわかりますが、D列は順位が 入れ乱れていて大変見づらいのでE列にD列の1位,2位,3位,・・・・ の順に対応するB列の氏名を上から順に表示したいのですがうまくいきません。  E列にはどんな関数を使えばいいのか、どなたか教えてください。

  • Excel ランダム抽選

    A B C ・ ・ ・ AAAAA と一万件のデータがあります。 それを無作為に1000件を抽選したいです。 そして当選した人の横に1を立てたいです。 1 A   B 1 C   ・   ・   ・   AAAAA という感じに。 関数でもマクロでも良いのでお願いします。

  • 検索値が複数条件ある場合のエクセル関数

    A列に抽選会の回数(1回~30回)、B列に当選番号(1番OR2番)、C列に商品番号(1番~10番)が入力されているデータが3000レコード 程入力されているデータがあります。 例えば、A列の抽選会の回数が5回&B列の当選番号が2番だった時のC列の商品番号を求めたいのですが、どんな式にすれば良いのでしょうか?入力されているデータの加工はできないので、セルを連結してVLOOKUP関数で検索値を求める事はできません。 どなたか、宜しくお願い致します。

  • 抽選方法

    懸賞の抽選方法について教えてください。 はがきの誰でも応募できる全国区の大手の懸賞とかありますよね?(誰でもわかる答えを書かせるような) あれってどうやって抽選しているのでしょうか? やっぱり無作為にランダムに選ぶのですか? まさか、1枚1枚内容を見たりとかはしないですよね?ってことはやっぱり枚数多く書いた方が当たりやすいってことですか? とりあえず、相当な数が集まる懸賞はどうやって抽選してるのか知りたいです。 よろしくお願いします。

  • 抽選で毎回当たる人と、何度応募しても一度も当たらない人

    こんにちは。 私は仕事で、懸賞に応募した人の中から当選者を決める業務に携わっています。 当選の仕方は、よくテレビでやっているように、ハガキをなにかの入れ物に入れて、そこからランダムに取り出して当選者を選びます。 コメントをたくさん書いてくれていたり、小さい子供の名前で応募していたり(年齢を書く欄があるので)、家族全員の名前で別々に応募していたり、一人で何枚も応募したり、みなさん様々な応募方法で応募してくれていますが、当選者を決めるには、コメントに良いことがかかれているとか、何枚も応募してくれているとか、小さい子供からの応募だからとか、そのようなことは一切関係なく、厳正な抽選で行っているのですが、毎回同じ人が当選したりします。 後から全てのハガキを集計するので、どの人が何口応募してくれたかとか、家族などで住所が同じである応募はどのくらいあるかとか、全てわかるのですが、何百枚もあるハガキの中から、一枚しか応募していないのに毎回当たる確率というのはかなり低いと思います。 ですが実際抽選するとどうしても毎回当たる人がいたり、毎回何枚も応募してくれているのに絶対当たらない人がいたりして、不思議な気持ちです。 運のいい人と悪い人、ツキのある人とない人って本当にあるんだなって思ったのですが、みなさんはどう思いますか? ただの偶然と言われればそうかもしれませんが、どうでしょうか? ※個人情報保護法の為、抽選後はすべてのハガキをシュレッタ-にかけます

  • エクセルでマクロを作りたいのですが上手くいきません

    エクセルで会社で使うファイルを作成していますが、ファイルサイズが大きくなりすぎたので、こういうマクロが作れないかと調べていたのですが、やり方がわからないので困っています。 わからないのは、入力シートのA列にデータを入力して、シート2のB列に自動的に表示する ことを自動的にやってくれるマクロです。 今はIF関数をシート2に入力している状態ですが、セルに関数を入れる方法だとファイルサイズが大きくなりすぎてしまいます。 (IF関数をあらかじめ入力しておくセル数がとてもたくさんある為) なお、入力シートA列がブランクの場合は、シート2のB列には何も表示されないようにしたいです。 大変困っております。よろしくお願いします。 

  • コンピューターによる抽選について 

    例えば懸賞で、 コンピューターによりランダムにナンバーを抽選して当選者を決める というものがありますが、ランダムとは言え、やはり 小さい順から番号が出てくるわけですか? もしそうだったら早めに番号をつけられるよりも 遅く応募して大きい番号をつけられた方が確立高くなりますよね 一人・二人と決まっていけば残った数は少なくなっていきますから。 。 それとも、小さい順などではナイのでしょうか? ご存知の方教えてください

  • エクセル関数の複数条件の値の求め方について

    A列に抽選会の回数(1回~30回)、B列に当選番号(1番OR2番)が3000レコード程入力されているデータがあります。 例えば、抽選会回数が2回で、当選番号が2番のレコード数を求めたいのですが、どのようにすれば良いでしょうか? 過去質問を参考にして、下記の式でとりあえず値は求められたのですが、この式では"1"以外という指定になってしまい、本来指定したい"2"のレコード数が求められません。(3番が出た時に困ります) =SUM((A1:A3000=2)*ISERROR(FIND("1",B1:B3000))) また、範囲指定を『A1:A3000』の様に範囲限定ではなくて、A列もB列も全てにしたいのですが、それは出来ないのでしょうか?『A:A』『B:B』と範囲指定したらエラー値 #NUM! になってしまいました。(レコードが随時増えていくので、その都度範囲指定をやり直したくありません) 宜しくお願いします。

  • 景品抽選の為のソフトを探しています!

    今年の忘年会での景品抽選で使えるソフト(アプリ)を探しています。 忘年会前にあらかじめ入力した「当選番号」または「当選者名」を みんなの前で見せながら使えるソフトを探しています。 方法は以下の二つを考えています。 ・ipadのアプリであれば、ipadの画面を会場の皆さんに見せながら使う ・PCのフリーソフトであれば、プロジェクターで発表する 当日の参加人数は250名前後です。景品数はおよそ30個です。 是非情報をお待ちしています。

  • 抽選会の当選番号を決めるのに、入場者は500人、賞品は36個として、エ

    抽選会の当選番号を決めるのに、入場者は500人、賞品は36個として、エクセルで A1:F6に =RAND()*(500+1)-1 を入れたところ、何度かやっているうちに、同じ数字が出てきました。 0から1の間の小数を四捨五入しているらしいので当然ですが、同じ番号が有っては都合が悪いので、同じ番号が出たら文字の色を変えるとか、セルの色を変えるとかして警告したいのですが、簡単な方法があれば教えてください。