【Excel】エクセルであみだくじの作り方(関数・自動・テンプレート・ランダム) | モアイライフ(more E life)

【Excel】エクセルであみだくじの作り方(関数・自動・テンプレート・ランダム)

Excelのスキルアップ
本サイトでは記事内に広告が含まれています

エクセルであみだくじを作れることをご存じでしょうか。

紙に手書きするよりも、エクセルで作ると参加人数の変更や結果のランダム自動生成が手軽にできるため、当番決めやグループ分けなどに活用できます。

この記事では、エクセルであみだくじを作る方法(ランダム・関数・自動・テンプレート)について、わかりやすく解説していきます。

ポイントは

・RAND関数とRANK関数を使ったランダム割り当ての仕組み

・INDEX関数とMATCH関数を組み合わせた結果表示の方法

・ボタンで結果を自動更新する方法

・見た目をあみだくじらしく整えるレイアウトのコツ

・マクロで結果を固定する方法

です。

それでは詳しく見ていきましょう。

 

スポンサーリンク

エクセルであみだくじを作る基本的な考え方

エクセルであみだくじを実現するには、「ランダムな順番を生成する」「その順番に従って結果を割り当てる」という2つの処理を組み合わせます。

あみだくじの本質は、参加者と結果をランダムに1対1で対応させることです。

エクセルではRAND関数でランダムな数値を生成し、RANK関数でその数値に順位をつけることで、ランダムな順番(あみだくじの結果に相当)を作り出すことができます。

その順番をもとにINDEX関数で結果を割り当てることで、あみだくじの機能を完全に再現できます。

 

使用する関数の概要

あみだくじ作成で使う主な関数は3種類です。

RAND関数は0以上1未満のランダムな小数を生成する関数で、シートが再計算されるたびに新しい値を返します。

RANK関数は指定した数値が範囲内で何番目に大きいかを返す関数で、RAND関数で生成したランダム値に順位を付けるために使います。

INDEX関数は指定した範囲の中から行番号で指定したセルの値を返す関数で、RANK関数で得た順位を使って対応する結果を取り出すために使います。

これら3つの関数を組み合わせることで、関数だけであみだくじの仕組みが完成します。

 

サンプルデータで確認してみよう

今回は5人の参加者と5つの結果を使ったあみだくじを例に解説します。

参加者は「ボルト」「ネジ」「マシュマロ」「チョコ」「カボチャ」、結果(当たり内容)は「1等」「2等」「3等」「4等」「ハズレ」とします。

F列には結果リスト(1等・2等・3等・4等・ハズレ)を縦に並べて入力しておきます。

このレイアウトを基本として、以降の各関数の設定方法を解説していきます。

【操作のポイント】あみだくじはRAND関数・RANK関数・INDEX関数の3つを組み合わせて作成する。参加者リスト・乱数・順位・結果の4列構成が基本レイアウト。結果リストを別列に用意しておくことがポイント。

 

エクセルあみだくじの作り方1【RAND関数とRANK関数でランダム順位を生成する】

まず、あみだくじのランダム性を生み出す核心部分として、RAND関数とRANK関数を設定していきます。

この2つの関数を組み合わせることで、参加者ごとにランダムな順位(1〜5位)が重複なく割り当てられます。

RAND関数が生成する乱数は全員分でほぼ確実に異なる値になるため、RANK関数で順位を付けるときに同順位が発生せず、きれいに1〜5位が割り当てられます。

 

RAND関数を設定する手順

B2セルにRAND関数を入力します。

=RAND()

RAND関数は引数なしで使用し、0以上1未満のランダムな小数を返します。

B2セルに入力したら、B6セルまでコピーして全参加者分の乱数を生成します。

RAND関数はシートが再計算されるたびに新しい値を返すため、Deleteキーを押したりセルを編集したりするだけでも値が変わります。

この性質を利用して、F9キーを押すと全員の乱数が一斉に更新され、あみだくじを引き直す効果を得られます。

 

RANK関数でランダム順位を付ける手順

次にC2セルにRANK関数を入力して、B2セルの乱数がB2:B6の範囲内で何番目に大きいかを求めます。

=RANK(B2,$B$2:$B$6,0)

この数式の意味を詳しく説明します。

第1引数の「B2」は順位を調べたい数値(対象セルの乱数)を指定しています。

第2引数の「$B$2:$B$6」は比較対象の範囲(全参加者の乱数)を絶対参照で指定しています。

絶対参照($マーク)を付けることで、C2セルの数式をC6セルまでコピーしても比較対象の範囲がずれずに正しく動作します。

第3引数の「0」は降順(大きい値が1位)を指定しています。

C2セルに入力したらC6セルまでコピーすると、各参加者に1〜5の重複しない順位が割り当てられます。

【操作のポイント】B列にRAND()を入力してB2:B6にコピー。C列にRANK(B2,$B$2:$B$6,0)を入力してC2:C6にコピー。第2引数は必ず絶対参照にすること。F9キーで乱数を更新してあみだくじを引き直せる。

 

エクセルあみだくじの作り方2【INDEX関数で結果を割り当てる】

RANK関数で生成したランダムな順位をもとに、INDEX関数を使って対応する結果(1等・2等・3等・4等・ハズレ)を取り出します。

F列に結果リストを縦に並べておき、RANK関数の順位を行番号として使うことで、ランダムな結果を自動的に割り当てられます。

この仕組みによって、順位が変わるたびに対応する結果も自動的に入れ替わり、あみだくじを引くたびに異なる結果が表示されます。

 

結果リストをF列に準備する

まず、F列に結果リストを入力します。

F1セルに「結果リスト」とヘッダーを入力し、F2セルから順に「1等」「2等」「3等」「4等」「ハズレ」と入力します。

このF2:F6の結果リストをINDEX関数の参照範囲として使用します。

結果リストの順番が当たりの確率に影響するわけではなく、RANK関数のランダムな順位によって割り当てが決まるため、結果リストの並び順は任意で問題ありません。

 

INDEX関数で結果を表示する数式

D2セルにINDEX関数を入力して、C2セルの順位に対応する結果をF列から取り出します。

=INDEX($F$2:$F$6,C2)

この数式の意味を詳しく説明します。

第1引数の「$F$2:$F$6」は結果リストの範囲を絶対参照で指定しています。

第2引数の「C2」はRANK関数で求めた順位(1〜5)を行番号として指定しています。

たとえばC2セルの順位が「3」であれば、F2:F6の3番目の値である「3等」がD2セルに表示されます。

D2セルに入力したらD6セルまでコピーすると、全参加者に結果が割り当てられます。

F9キーを押すたびにRAND関数の値が更新されてRANK関数の順位が変わり、INDEX関数の結果も自動的に変わります。

これがエクセルで再現したあみだくじの基本動作です。

【操作のポイント】F列に結果リスト(F2:F6)を入力してD2セルに=INDEX($F$2:$F$6,C2)を入力。D6セルまでコピーすれば全参加者に結果が割り当てられる。F9キーで引き直し可能。第1引数は必ず絶対参照にすること。

 

エクセルあみだくじの作り方3【見た目をあみだくじらしく整えるレイアウト】

関数の設定が完了したら、見た目をあみだくじらしく整えると完成度が上がります。

エクセルのセルの罫線・塗りつぶし・フォント設定を活用することで、縦線と横線が交差するあみだくじらしいレイアウトを作ることができます。

見た目の整ったあみだくじは、当番決めやイベントの場で実際に画面を見せながら使う際に特に効果的です。

 

参加者名と結果の表示エリアを整える

参加者名(A列)と結果(D列)を見やすく整えましょう。

A列の参加者名セルには背景色を設定し、文字を中央揃えにします。

「ホーム」タブ→「塗りつぶしの色」で好みの色(例:水色)を設定し、「中央揃え」ボタンをクリックします。

D列の結果セルにも同様に背景色と中央揃えを設定しましょう。

1等のセルだけ金色や赤色で強調表示するには、条件付き書式を使って「セルの値が”1等”に等しい場合」に特定の書式を適用すると視覚的にわかりやすくなります。

 

あみだくじの縦線・横線をセルの罫線で表現する方法

あみだくじらしい縦線と横線は、セルの罫線設定で表現できます。

B列とC列(乱数・順位の計算列)を非表示にして、A列(参加者)とD列(結果)の間に縦線をイメージした装飾列を設けます。

B列・C列を選択して右クリック→「非表示」を選択すると、計算に使用している乱数・順位の列が見えなくなり、すっきりした見た目になります。

あみだくじの横線はセルの上下罫線を使って表現でき、横線が入る位置のセルにだけ上罫線または下罫線を設定することでランダムな横線を演出できます。

厳密に動くあみだくじというよりも「見た目がそれらしい」レイアウトとして活用するのが現実的です。

 

タイトルと操作説明を追加して完成度を上げる

シートの上部にタイトルと操作説明を追加しておくと、他の人が使うときにもわかりやすいあみだくじシートになります。

1行目にタイトル(例:「あみだくじ F9キーで引き直しできます」)を入力して、フォントサイズを大きくして目立たせましょう。

セルを結合してタイトルを中央表示にするか、「選択範囲内で中央」を使うとアクセシビリティ上も問題のないレイアウトに仕上がります。

F9キーで引き直せることをタイトルや説明文に明記しておくと、使う人が直感的に操作できて便利です。

【操作のポイント】乱数・順位の計算列(B・C列)は非表示にしてすっきりさせる。参加者・結果セルには背景色・中央揃えを設定。1等セルへの条件付き書式で強調表示も可能。タイトル行にF9キーの説明を記載しておくと使いやすい。

 

エクセルあみだくじの作り方4【ボタンで引き直しを自動化する方法】

F9キーで引き直せるとはいえ、操作に慣れていない人にとってはわかりにくい場合もあります。

シート上にボタンを設置して、クリックするだけであみだくじを引き直せる仕組みにすると、誰でも直感的に使えるようになります。

ボタンにマクロを割り当てることで、クリックひとつでRAND関数が更新されて全員の結果が一斉に切り替わる演出ができます。

 

引き直しボタン用のマクロを作成する

「開発」タブ→「Visual Basic」をクリックしてVBAエディタを開きます。

「挿入」→「標準モジュール」を選択して、以下のマクロを入力します。

Sub RerollAmida()
    Application.Calculate
End Sub

このコードはApplication.Calculateを呼び出してシート全体を再計算させる非常にシンプルなマクロです。

再計算によってRAND関数の値が更新され、RANK関数・INDEX関数の結果も連動して更新されます。

Application.Calculateはブック全体を再計算するため、RAND関数が含まれる他のシートの値も同時に更新される点に注意が必要です。

特定のシートだけ再計算したい場合はActiveSheet.Calculateを使います。

 

シートにボタンを設置してマクロを割り当てる手順

「開発」タブ→「挿入」→「フォームコントロール」→「ボタン(フォームコントロール)」を選択します。

シート上の任意の場所にドラッグしてボタンを描画すると、「マクロの登録」ダイアログが自動的に表示されます。

先ほど作成した「RerollAmida」を選択して「OK」をクリックします。

ボタンのテキストを右クリック→「テキストの編集」で「あみだくじを引く」などわかりやすい名前に変更します。

このボタンをクリックするだけで全参加者の結果が一斉に更新されるため、イベントや会議の場でも直感的に操作できます。

【操作のポイント】マクロはApplication.Calculateの1行で十分。「開発」タブ→「挿入」→「ボタン」を設置してマクロを割り当てる。ボタン名を「あみだくじを引く」など直感的な名前にしておくと誰でも使いやすい。

 

エクセルあみだくじの作り方5【マクロで結果を固定する方法】

あみだくじの結果が決まったら、その結果を変わらないように固定したい場面もあるでしょう。

RAND関数はシートが再計算されるたびに値が変わるため、誰かがセルをクリックしたり別のデータを入力したりするだけで結果が変わってしまう可能性があります。

決定した結果を固定するには、関数の入ったセルをコピーして「値のみ貼り付け」で上書きするか、マクロで自動化する方法があります。

 

値のみ貼り付けで結果を固定する方法

結果が決まったタイミングで、D列(結果セル)を選択してCtrl+Cでコピーします。

そのまま右クリック→「形式を選択して貼り付け」→「値」を選択して「OK」をクリックします。

これにより、D列の数式が計算結果の値に置き換えられ、以降シートが再計算されても結果が変わらなくなります。

値の貼り付け後はRAND関数との連動がなくなるため、F9キーを押しても結果は変わらない固定状態になります。

再度引き直したい場合は元の数式を入力し直す必要があるため、固定前にファイルを別名保存しておくと安心です。

 

マクロで結果を自動固定する方法

ボタンクリックで結果を固定できるマクロを使うと、値の貼り付け操作を自動化できます。

Sub FixAmidaResult()
    Dim rng As Range
    Set rng = Range("D2:D6")
    rng.Value = rng.Value
    MsgBox "あみだくじの結果を固定しました。"
End Sub

このコードではD2:D6の範囲に対して、値を自分自身に上書き代入(rng.Value = rng.Value)することで、数式を計算結果の値に置き換えています。

Set rng = Range(“D2:D6”)でD2からD6の範囲を変数に格納し、rng.Value = rng.Valueで数式を値に変換しています。

最後のMsgBox関数で完了メッセージを表示することで、固定処理が正常に完了したことを操作者が確認できます。

このマクロを「結果を固定する」ボタンに割り当てておけば、引き直しボタンと固定ボタンの2ボタン構成のあみだくじシートが完成します。

 

固定後のシートの状態と活用方法

結果を固定したあとのシートでは、D列の数式バーに数値や文字列がそのまま表示され、関数式が消えていることが確認できます。

固定済みのファイルを保存しておけば、あみだくじの結果の記録として残すことができます。

当番決めや役割分担の結果を証拠として残したい場面では、固定後のファイルをPDF出力して保存しておくとトラブル防止にもなります。

「引き直し用ファイル」と「結果固定用ファイル」を別々に保存しておく運用にすると、次回のあみだくじにも再利用できて便利です。

【操作のポイント】値の固定はD列を選択→コピー→形式を選択して貼り付け→「値」を選択。マクロならrng.Value = rng.Valueで数式を値に置き換えられる。固定前に別名保存しておくと引き直し用ファイルを再利用できる。

 

まとめ エクセルであみだくじの作成方法(自動・テンプレート・ランダム)

エクセルであみだくじを作るには、RAND関数・RANK関数・INDEX関数の3つを組み合わせることで、ランダムな結果の割り当てを自動化できます。

B列にRAND()を入力して乱数を生成し、C列にRANK(B2,$B$2:$B$6,0)で重複しない順位を付け、D列にINDEX($F$2:$F$6,C2)で結果リストから対応する結果を取り出す、という3ステップが基本の仕組みです。

F9キーを押すとRAND関数が更新されて全員の結果が一斉に切り替わり、何度でも引き直しが可能です。

見た目の整ったあみだくじにするには、計算列を非表示にして参加者・結果セルに背景色・中央揃えを設定し、条件付き書式で1等セルを強調表示するとさらに完成度が上がります。

ボタンにApplication.Calculateマクロを割り当てることで、クリックひとつで引き直せる直感的な操作環境を整えられます。

結果が決まったらrng.Value = rng.Valueで数式を値に固定することで、その後の再計算で結果が変わってしまうトラブルを防げます。

当番決めやグループ分け、イベントの役割分担など、公平なくじ引きが必要なあらゆる場面でこのあみだくじシートを活用してみてください。

コメント

スポンサーリンク
タイトルとURLをコピーしました