Cách chọn nhóm ngẫu nhiên trên excel
Post date: Jan 28, 2013 6:27:21 PM
Điều kiện:
1. Danh sách gồm 1500 khách hàng
2. Làm sao để lấy ngẫu nhiên 100 trong 1500 khách hàng. 100 khách hàng này không trùng nhau.
3. Lấy ngẫu nhiên 100 khách hàng 2-3 lần.
Giải pháp của HelloICT:
Bước 1: Đánh số thứ tự cho 1500 khách hàng. Bắt đầu số 1 cho khách hàng thứ nhất và số 1500 cho khách hàng cuối cùng. Mục đích của bước này là gán 1 số đại diện cho một khách hàng. Ví dụ: số 10 đại diện cho khách hàng A, số 11 đại diện cho khách hàng B. Các số này không được lặp lại 2 lần.
Tạo cột số thứ tự đại diện cho mỗi khách hàng
Bước 2: Tạo 100 số
ngẫu nhiên. Bước này dùng lệnh =randbetween() sẽ gặp vấn đề các số ngẫu
nhiên có thể trùng nhau. Giải pháp tốt nhất để lấy 100 số ngẫu nhiên mà
không trùng nhau là sử dụng VBA.
Thực hiện: Nhấn Alt + F11 để vào phần soạn thảo mã VBA >> Vào
Insert > Module > Copy và dán đọan code bên dưới vào khung soạn
thảo.
'--------------------------------
'Code của DONGPN
'===================
Option Explicit
Sub TaoNgauNhien()
Dim i As Integer, j As Integer
Dim Matran(), gtri, gtri2
Dim max_i, max_j As Integer
max_i = 1500
max_j = 100 ' So so ngau nhien muon lay ra
ReDim Matran(1 To max_i)
For i = 1 To max_i
Do
gtri = Round(Rnd() * max_i, 0)
If gtri = 0 Then GoTo tieptuc
For j = 1 To i - 1
If gtri = Matran(j) Then GoTo tieptuc
Next j
Matran(i) = gtri
Exit Do
tieptuc:
Loop While True
Next i
For i = 1 To max_j
Cells(ActiveCell.Row + i, ActiveCell.Column) = Matran(i)
Next i
End Sub
Trong đoạn code này có hai biến mà các bạn cần lưu ý:
max_i: là khoảng sẽ tạo giá trị ngẫu nhiên.
max_j: là số số ngẫu nhiên muốn lấy
* Cảm ơn bạn DONGPN đã bổ sung đoạn code VBA này!
Nhấn Alt + Q để đóng của sổ soạn thảo code VBA. Tiếp tục đặt con trỏ
vào một cột trống trong Sheet, nhấn Alt + F8 và chạy macro này để tạo
100 số ngẫu nhiên.
Tạo 100 số ngẫu nhiên bằng code VBA
Buớc 3: Dùng hàm vlookup đối chiếu giữa cột số ngẫu nhiên và bảng danh sách khách hàng để tìm ra Tên khách hàng tương ứng với từng số ngẫu nhiên. Ví dụ ta được con số ngẫu nhiên là 152 thì tên khách hàng là gì trong bảng danh sách?
Công thức: =vlookup(cell-số-ngẫu-nhiên, vùng-bảng-danh-sách-gồm-cột-số-thứ-tự, số-thứ-tự-cột-cần-lấy-giá-trị-tính-từ-cột-số-thứ-tự). Ví dụ: =VLOOKUP(K4,$A$4:$D$1725,4). Nên nhớ địa chỉ bảng danh sách phải là địa chỉ tuyệt đối.
Tham chiếu tên khách hàng của 100 số ngẫu nhiên đó
Như vậy, tương ứng với 100 số ngẫu nhiên lấy ra từ 1500 con số thứ tự
của khách hàng, chúng ta sẽ có 100 khách hàng ngẫu nhiên tương ứng.
{tipbox_right}Lưu ý rằng, mỗi khi có thay đổi, các con số ngẫu nhiên sẽ thay đổi và vì thế tên khách hàng cũng thay đổi theo.