決まった枠数があって、その中で当番などを割り当てる方法です。
成果物
![excel ランダム 振り分け2](https://sunagitsune.com/wp-content/uploads/2021/11/50fdb9958c74d1bd211e46778d0da1ad.png)
仮にメンバーが10人いて、担当(あるいはくじの結果など)も同じだけあるものとします。
![excel ランダム 振り分け17](https://sunagitsune.com/wp-content/uploads/2021/11/a810c1985d5cd663992efd9e2800e1f9.png)
担当に対してメンバーをランダムに振り分けます。
当番表の作り方
使う関数
やり方は色々考えられますが、ここではRand関数でランダムな数値を求め、
Large関数でランク付けし、
VLookUp関数でランクに対応するメンバーを取得します。
行番号を取得するRow関数も使います。
乱数の取得
![excel ランダム 振り分け3](https://sunagitsune.com/wp-content/uploads/2021/11/f6a85326a4c42dda92b41fc6f6cc222f.png)
メンバー表の左に列を挿入し、
![excel ランダム 振り分け4](https://sunagitsune.com/wp-content/uploads/2021/11/263a50b7b865d618dc36f3e6e37a1dc4.png)
一番上のメンバーの左に=Rand()と入力してEnterを押します。Rand関数は0~1のランダムな数値を取得できる関数です。
![excel ランダム 振り分け5](https://sunagitsune.com/wp-content/uploads/2021/11/a2f63d5a9cc016fabc41038285231c76.png)
関数をオートフィルで一番下のメンバー左まで伸ばします。
![excel ランダム 振り分け6](https://sunagitsune.com/wp-content/uploads/2021/11/431a90de9d30892bb1d05c885ac4915e.png)
Rand関数の値は何か処理をするたびに数値が変わる=順位が安定しないので、ただの数値に変換します。
下まで伸ばした範囲をそのままコピーし、
下まで伸ばした範囲をそのままコピーし、
![excel ランダム 振り分け7](https://sunagitsune.com/wp-content/uploads/2021/11/44d29690c8777fe6a61452b777242288.png)
ホームタブ→貼り付けから値の貼り付けをクリックします(他の動線でもOKです)。
![excel ランダム 振り分け8](https://sunagitsune.com/wp-content/uploads/2021/11/5af4860e608ae77bb4460b3954eb4d05.png)
変化しない乱数が取得できました。
コピペして完成
![excel ランダム 振り分け13](https://sunagitsune.com/wp-content/uploads/2021/11/3161f04b4f1012c6f9fa89b43f388c05.png)
担当表の一番上に、=VLOOKUP(LARGE($A$2:$A$11,ROW()-1),$A$2:$B$11,2,FALSE)と記述します。
赤字の部分がメンバー表⁺乱数がある範囲なので、メンバー数に応じて数字を変更してください。
青字はメンバー表(例で言うB列)のひとりめのメンバーが1行目に描かれているならRow()、3行目からならRow()-2となります。例のように2行目から書かれているならそのままでOKです。
赤字の部分がメンバー表⁺乱数がある範囲なので、メンバー数に応じて数字を変更してください。
青字はメンバー表(例で言うB列)のひとりめのメンバーが1行目に描かれているならRow()、3行目からならRow()-2となります。例のように2行目から書かれているならそのままでOKです。
![excel ランダム 振り分け14](https://sunagitsune.com/wp-content/uploads/2021/11/bad126bb36a07366250b9119b5dd3b7b.png)
式を下までオートフィルします。
書式(罫線)をコピーしたくない場合、オートフィルオプションの書式なしコピーをクリックします。
書式(罫線)をコピーしたくない場合、オートフィルオプションの書式なしコピーをクリックします。
![excel ランダム 振り分け15](https://sunagitsune.com/wp-content/uploads/2021/11/b057f1ea3cbd338195c1fca4fefd3a70.png)
メンバーがランダムに割り振られました。
乱数を削除
![excel ランダム 振り分け16](https://sunagitsune.com/wp-content/uploads/2021/11/715a114bc2dbec6cc0363439529ba1e4.png)
乱数を削除したい場合は、先に当番表のメンバーをコピー→値をコピーしてただの文字列に変換します。
![excel ランダム 振り分け17](https://sunagitsune.com/wp-content/uploads/2021/11/a810c1985d5cd663992efd9e2800e1f9.png)
その後で乱数列を削除すればOKです。もし再利用するなら、乱数部分も残しといたほうが楽です。
関数部分の解説
乱数をランク付け
![excel ランダム 振り分け9](https://sunagitsune.com/wp-content/uploads/2021/11/0c40b497f1fbf02cca899962ff17d552.png)
Large関数を使うと、範囲の中でn番目に大きい値を取得できます。
一番後ろの数値が1なら1番大きな数字です。
一番後ろの数値が1なら1番大きな数字です。
![excel ランダム 振り分け10](https://sunagitsune.com/wp-content/uploads/2021/11/f2ee809232ea61551a5336b52e94af8c.png)
この最後の数字は普通にコピー・オートフィルすると変化しないんですが、Row関数(セルの行番号を取得する)から-1してやれば、2行目なら2-1で1番大きな数字、3行目なら3-1で2番目に大きな数字を取得してくれるので、一行ずつ手打ちする必要がなくなります。
![excel ランダム 振り分け12](https://sunagitsune.com/wp-content/uploads/2021/11/cb6914803578d4820035d571d9f1fc7c.png)
Large($A$2:$A$11,Row()-1)を並べると、A列の数字が上から大きい順に並べ換えられていることが確認できます。
![excel ランダム 振り分け13](https://sunagitsune.com/wp-content/uploads/2021/11/3161f04b4f1012c6f9fa89b43f388c05.png)
A列の右にあるメンバー名をVLookUp関数で取得します。Aを検索してヒットしたらその右にあるBを表示する、というような関数で、
![excel ランダム 振り分け15](https://sunagitsune.com/wp-content/uploads/2021/11/b057f1ea3cbd338195c1fca4fefd3a70.png)
ここでは「一番大きな数字とセットになったメンバー=Gさん、2番目=Jさん……」と上から順にメンバーを振り分けています。
別の方法
メンバーをシャッフルしてから〇行から〇行は〇〇……と振り分ける、という方法もあります。
![](https://sunagitsune.com/wp-content/uploads/2021/06/gesellschaftsspiel-5878815_1280-160x90.jpg)
Excel(エクセル):ランダム、乱数
Excelの乱数、ランダム関連操作、関数等まとめです。
乱数の作成
関数で乱数を求める場合、Rand関数(0~1の乱数)またはRandBetween関数(指定範囲の整数)を用います。
もしビンゴで使うような重複...
![](https://sunagitsune.com/wp-content/uploads/2018/12/mathematics-1509559_1280-160x90.jpg)
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
![](https://sunagitsune.com/wp-content/uploads/2018/10/gui-2311261_1280.png)
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
コメント