« ”iPhoneは使用できません 1分後にやり直してください”というメッセージが出たときの対処法 | トップページ | iPhoneで確実に無音撮影する方法 »

2015年4月19日 (日)

Excelで第○希望者の抽選順位を決める方法(第1希望ほど優先で)

何を言ってるのか分からないタイトルですが、順に説明いたします。

Excel上で処理しなきゃならなくなったので、そのとき考えたアイデアを公開しておきます。

まず、3つのイベントを募集して、各イベント毎にチケットを希望者に配布しようと考えてます。

このときどのイベントがいいか第1~第3希望まで聞いて、3つのイベントそれぞれ第1~第3希望順に並べます。

Exceltyusen01

3つのうちの一つのイベントが、例えばこんな感じになったとします。

抽選のルールですが、

・ランダムで決めるが、必ず第1希望の人が優先される

とします。

Exceltyusen02

つまり、並べ替えは行っても、必ず第2希望の人が第1希望より高くならない(第2、第3の関係も同じ)ようにします。

もし当選数が5だとすると、この場合 第1希望3人、第2希望2人が当選となります。

実際にはこれが百人以上いるような状況で、果たしてどうやってこんな並べ替えをさせるのか?

検索してみましたが、ただ単にリストをランダムに並べ替える方法というのは見つけたものの、こんな感じに優先順を守ったまま並べ替える方法なんて見つかりませんでした。

で、散々考えた挙句に私がやった方法は以下の通り。

まず、第1希望者の横のセルに”=RAND()+2”という式を書きます。

Exceltyusen03

”RAND()”は”0~1”までの乱数を発生させる関数。この場合”2~3”の間の数を返してきます。

同様に、第2希望者の横のセルは”=RAND()+1”

Exceltyusen04

第3希望者の横のセルは”=RAND()”と記述します。

Exceltyusen05

こんな感じになるはずです。

Exceltyusen06

この状態で、乱数の大きさ順に”並べ替え”を実行。

Exceltyusen07

以下のように並べ替えは実行されますが第1~第3希望の優先順は変動しません

Exceltyusen08

必ず第1希望を書いた人がリストの上に来るようになります。

あとは上から順に抽選数まで選んでやればOK。

なおこのRAND()という関数、F9キー(再計算)を押すたびに値が変化します。何度かF9を叩いてから並べ替えを実行するとより抽選らしくていいかもしれませんね。

私が実際にやったのは、名前と第1~第3希望までのイベント番号を書いた集計リストからイベントごとに第1希望→第2希望→第3希望順に並べたリストを作り出し、そのリスト作成時に名前の横のセルへ上のように”乱数+2”の数値(VBAでは”Rnd+2.0”のように記述)を書き込んで、最後にソートするというマクロを作りました。

Excelである優先順に抽選者を決めたいようなシチュエーションがありましたら、ぜひご活用ください・・・って、あんまりこういう場面はないかもしれませんが。

Microsoft Office Excel 2013 [オンラインコード] [ダウンロード][Windows版] (PC2台/1ライセンス)

« ”iPhoneは使用できません 1分後にやり直してください”というメッセージが出たときの対処法 | トップページ | iPhoneで確実に無音撮影する方法 »

パソコン系」カテゴリの記事

数値解析系」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Excelで第○希望者の抽選順位を決める方法(第1希望ほど優先で):

« ”iPhoneは使用できません 1分後にやり直してください”というメッセージが出たときの対処法 | トップページ | iPhoneで確実に無音撮影する方法 »

無料ブログはココログ

スポンサード リンク

ブログ村