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.