メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで抽選用の名前をどのように作成しますか?

Author Xiaoyang Last modified

職場の活動、チーム会議、または特別なイベントでは、大規模な名簿からランダムに数人の幸運な参加者や当選者を選ばなければならないことがよくあります。例えば、チーム抽選、ランダム賞品、またはボランティアを選ぶ場合などです。手作業で帽子から名前を引くのは、特に名前の数が増えるにつれて、デジタルリストを扱う場合には非効率的または現実的ではありません。幸いにも、Excelにはリストからランダムに選択するためのさまざまな実用的な方法があり、スプレッドシート内で透明性があり、再現可能でカスタマイズ可能な抽選体験を作ることができます。この記事では、Excelで名前をランダムに選ぶためのいくつかの効果的な方法を説明し、その使用例、利点、考慮点を強調し、一般的な間違いを避けるための役立つヒントも共有します。

数式を使用して抽選用のランダムな名前を抽出する

Kutools for Excelを使用して抽選用のランダムな名前を選択する

VBAコードを使用して抽選用のランダムな名前を抽出する

代替案: RAND関数と並べ替えを使用してランダムな名前を抽出する


数式を使用して抽選用のランダムな名前を抽出する

ある列の名前の中から特定の数の名前(例えば、3人の当選者)をランダムに選択する必要がある場合、複雑な数式アプローチを使用できます。このアプローチは重複選択を自動的に回避し、ワークブックが再計算されるたびに結果を更新します。これは、中程度のサイズのリストから少数の固定された名前を引き出す際に特に適しており、特にプロセスが追跡可能であり、追加のアドインやコードを必要としない場合に最適です。

この方法を使用するには、以下の手順に従ってください:

最初の抽選結果を表示したい空白のセルに次の数式を入力してください(例えば、C2):

=IF(ROWS(C$2:C2)>B$2,"",INDEX(A$2:A$16,AGGREGATE(15,6,((ROW(A$2:A$16)-ROW(A$2)+1)/ISNA(MATCH(A$2:A$16,C$1:C1,0))),RANDBETWEEN(1,ROWS(A$2:A$16)-COUNTA(C$1:C1)+1))))

数式を入力した後、抽選したい名前の数と同じ行数だけフィルハンドルを下にドラッグします(例えば、3つの名前を抽選したい場合は、それを3行下までドラッグしてC4まで)。抽選された名前は自動的にセルに表示されます。スクリーンショットをご覧ください:

Extract random names with a formula

パラメータの説明と実践的なヒント:

  • この数式では:
    • A2:A16 — これは元の名前のリストです。この範囲を実際の名前データに合わせて変更してください。
    • B2 — このセルにはランダムに選択したい名前の総数を入力してください(例えば、3と入力します)。
    • C2 — これが結果リストの最初のセルであり、ここに数式を入力します。
    • C1 — これは数式の真上のセルです。空白でも、数式構造が正しく機能するために必要です。
  • この方法は動的です:新しいランダムな名前のセットが必要な場合は、F9キーを押すだけで再計算され、新しい結果セットが得られます。
  • ワークシートが再計算されるたびに数式が変わることを防ぐためには、結果をコピーして「形式を選択して貼り付け」→「値」を使用して、抽選された名前を静的にすることができます。
  • 名簿が大きい場合や抽選を複数回行いたい場合、結果の列と名簿が重ならないように注意してください。そうしないとエラーが発生する可能性があります。

警告: セル参照が正しいことと、範囲が実際のデータに一致していることを確認してください。ワークシートの構造を変更したり、参照されているセルを削除すると、数式が破損する可能性があります。


Kutools for Excelを使用して抽選用のランダムな名前を選択する

数式を書きたくないシンプルでインタラクティブな方法を好む場合、Kutools for Excelはその「範囲をランダムに並べ替える」機能を通じて直接ランダムに名前を選択する簡単な方法を提供します。このソリューションは、特に大規模なデータセットや頻繁に抽選を行う必要がある場合に、非技術的なユーザー向け、または視覚的に迅速に作業したい場合に非常に便利です。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

Kutools for Excelをインストールしたら、以下の手順に従ってください:

1. 抽選に使いたい名簿全体を選択します。その後、Kutools > 範囲 > 並べ替え / 範囲をランダムに選択 をクリックします。スクリーンショットをご覧ください:

click Sort / Select Range Randomly feature of kutools

2.範囲をランダムに並べ替え/選択」ダイアログボックスで、「選択」タブに移動します。ここで、取得したいランダムな名前の数を「選択するセルの数」ボックスに入力します(例えば、3)。その後、「選択タイプ」セクションで「ランダムなセルを選択」を選択します。これにより、任意の数のユニークな名前をランダムに選択できます。スクリーンショットをご覧ください:

specify the options in the dialog box

3. OKをクリックします。指定された数の名前がランダムに選択され、リストの中でハイライトされるので、当選者や選ばれた参加者を簡単に識別できます。スクリーンショットをご覧ください:

the specific number of names are selected

この方法は、使いやすさと信頼性に優れています。さらに、希望があれば名前を並べ替えたりシャッフルしたりするオプションもあります。必要な回数だけこの機能を使用でき、手動でのミスや繰り返しを避けられます。これは、数式やコーディングを気にせず素早く解決策を得たい人に理想的です。

注意: リスト内の他の無関係なデータを選択しないようにしてください。ハイライトされたセルのみがあなたの当選者を表しています。ハイライトされた名前は、必要に応じてコピーまたはマークできます。

今すぐKutools for Excelをダウンロードして無料試用版を入手!

まとめると、Kutools for Excelを使用することで、ユーザーフレンドリーかつ非常に効率的な方法でランダムな抽選を管理できます。これは、信頼性と使いやすさが主な懸念事項である場合、または異なるグループサイズで複数の抽選を行いたい場合に特に適しています。


VBAコードを使用して抽選用のランダムな名前を抽出する

より高度なシナリオや、より柔軟にプロセスを自動化したい場合、VBAコードを使用してリストからランダムな名前を抽出できます。このソリューションは、開発者オプションに慣れており、抽選を繰り返したり手順を修正したりする場合、たとえば特定の場所に出力したり、大きなリストを処理したりする場合に適しています。

VBAを使用して抽選を行うには、以下の手順に従ってください:

1. Alt + F11を押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。

2. 挿入 > モジュール をクリックして新しいモジュールを作成し、以下のVBAコードをモジュールウィンドウにコピー&ペーストします。

VBAコード: リストからランダムな名前を抽出する:

Public Sub LuckyDraw()
    Dim I, J, xRnd As Long
    Dim xSRg, xDRg As Range
    Dim xDic As New Dictionary
    Dim xnum, xLastRow As Long
    On Error Resume Next
    Set xSRg = Application.InputBox("Please select the data list:", "KuTools for Excel", Selection.Address, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    Set xDRg = Application.InputBox("Please selecta cell to put the result:", "KuTools for Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    xLastRow = xSRg.Rows.Count
    Set xSRg = xSRg(1)
    Set xDRg = xDRg(1)
    xnum = Range("B2")
    If xnum < 1 Then Exit Sub
    J = 0
    For I = 1 To xnum
LabExit:
        xRnd = Int(Rnd() * xLastRow)
        If xDic.Exists(xRnd) Then GoTo LabExit
        xDic.Add xRnd, ""
        xDRg.Offset(J, 0).Value = xSRg.Offset(xRnd, 0).Value
        J = J + 1
    Next
End Sub

パラメータの説明: コード内では、B2はランダムに抽出する名前の数を入力するセルです。必要に応じてセル参照を変更できます。

3. コードを貼り付けた後、VBAエディタウィンドウでツール > 参照設定 を開きます。開いたダイアログボックスで「利用可能な参照」リストにあるMicrosoft Scripting Runtimeのオプションをチェックします。このステップは、コード内で使用されるスクリプティング辞書を有効にするために必要です。スクリーンショットをご覧ください:

click Tools > References, then check Microsoft Scripting Runtime option

4. ダイアログを閉じるためOKをクリックし、F5を押してコードを実行します。選択したい名前が含まれているデータリストを選択するためのプロンプトボックスが表示されます。スクリーンショットをご覧ください:

vba code to select the data list

5. OKをクリックします。もう一つのプロンプトボックスが表示され、抽選結果を表示したいセルを選択します。スクリーンショットをご覧ください:

vba code to select a cell to put the result

6. OKをクリックして処理を完了します。指定されたセルから、ランダムに選ばれた名前が出力されます。スクリーンショットをご覧ください:

the desired number of names are created randomly

実用的なヒント: コードを実行する前に、必ず作業内容を保存してください。エラーが発生した場合は、参照設定とセル範囲の選択を再確認してください。この方法はより多くの制御を提供しますが、基本的なVBA操作に慣れているユーザーに最適です。

長所と短所: VBAアプローチはカスタマイズに強力で、以前の勝者を除外する、通知を自動化するなどの高度な要件に対応できます。しかし、基本的なVBA知識が必要で、マクロが許可されていない環境では適していない場合があります。


代替案: RAND関数と並べ替えを使用してランダムな名前を抽出する

上記の方法に加えて、もう一つの実用的で視覚的な解決策は、RAND関数と並べ替えを組み合わせて使うことです。この方法はシンプルで、複雑な構造を持つ数式、アドイン、コーディングは不要なので、どのExcelバージョンでも素早く一時的な抽選を行うのに適しています。また、ランダム化がどのように行われるかを目で見て確認できるのも魅力です。

以下がその手順です:

  • 名前リストの隣にヘルパー列を追加し、ヘルパー列の最初のセルに=RAND()を入力します(例えば、名前がA2:A16にある場合、B2に=RAND()を入力します)。
  • リスト全体に沿って数式をコピーします。各セルにはランダムな小数値が入力されます。
  • 元の名前とRANDヘルパー列の両方を選択します。
  • データタブに移動し、並べ替えを選択します。並べ替えをRAND値のあるヘルパー列で行い、最小から最大(またはその逆)に設定します。これにより、リスト全体がランダムに並べ替えられます。
  • 並べ替えが終わったら、並べ替えられたリストの上位N個の名前を抽選の当選者として選びます。

ヒントと注意点: ワークシートが再計算されるたびに、RAND関数が更新されます。結果を固定したい場合は、名前をコピーして別の場所に値として貼り付けてください。別の抽選を行いたい場合は、単に再計算(F9)します。

利点: このアプローチは非常に簡単に実装でき、追加の設定は不要で、ライブ抽選中に公平性を示すのにも適しています。ただし、抽選を頻繁に繰り返す必要がある場合や、除外リストなどの高度な機能が必要な場合は、数式、VBA、またはKutoolsの方が適しています。


まとめると、Excelには抽選用にランダムに名前を選択する複数の方法があります。方法の選択は、シンプルさ、カスタマイズ性、または視覚的インタラクションの好みに依存します。シンプルな手動操作では、RANDと並べ替え、またはKutools for Excelが推奨されます。動的で再利用可能なソリューションには、数式やVBAが追加の柔軟性を提供します。エラーや予期しない結果が発生した場合は、セル参照や範囲選択を再確認し、必要なアドインやマクロ設定が有効になっていることを確認してください。最良の結果を得るためには、常に抽選を開始する前にデータを保存し、重要なアクティビティやチームイベントで間違いを避けるために結果を検証してください。


最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得