In your daily work, sometimes, you need to select some employees randomly from a long list names as the lucky names. In Excel, how could you randomly select some names for making lucky draw? This article, I will talk about some useful methods to deal with this job in Excel.
Extract random names for making lucky draw with formula
For example, I want to extract any 3 names from the name list, the following long formula can help you, please do as this:
Enter this formula into a blank cell where you want to put the result: =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)))), and then drag the fill handle down to cells as you need, see screenshot:
1. In the above formula: A2:A16 is the name list that you want to extract from randomly, B2 is the required number you want to extract names, C2 is the cell where to enter the formula, and C1 is the cell above the formula cell.
2. You can press F9 key to get another group of new names randomly.
Extract random names for making lucky draw with VBA code
Here, a VBA code also can help you to finish this task, please do as this:
1. Hold down the Alt + F11 keys to open the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Extract random names from a list:
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
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
Note: In the above code, B2 is the cell contains the number of names you want to extract.
3. After inserting the code, then click Tools > References in the opened Microsoft Visual Basic for Applications window, and then, in the popped out References – VBAProject dialog box, check Microsoft Scripting Runtime option in the Available References list box, see screenshot:
4. And then click OK button to exit the dialog box, then press F5 key to run this code, and a prompt box is popped out to remind you selecting the data list you want to extract names from, see screenshot:
5. Click OK button, and another prompt box is popped out, please select a cell where you want to put the result, see screenshot:
6. Then click OK, and the desired number of names have been created randomly at once, see screenshot:
Select random names for making lucky draw with Kutools for Excel
May be above two methods are difficult for most of us, here, if you have Kutools for Excel, with its Sort Range Randomly feature, you can quickly select names randomly.
Kutools for Excel: with more than 300 handy Excel add-ins, free to try with no limitation in 30 days.
After installing Kutools for Excel, please do as this:
1. Select the name list that you want to select randomly. Then click Kutools > Range > Sort Range Randomly, see screenshot:
2. In the Sort Range Randomly dialog box, under the Select tab, enter the number that you want to select names into the No. of cells to select text box, and then choose Select random cells in the Select Type section, see screenshot:
3. Then click Ok button, and your specific number of names have been selected as you need, see screenshot:
Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
More than 300 powerful features. Supports Office/Excel
2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features
30-day free trial. 60-day money back guarantee.