Giả sử bạn có một danh sách nhân viên (hoặc sản phẩm, hoặc vật dụng, hoặc bất cứ thứ gì) và bạn muốn chọn ngẫu nhiên hai mục từ danh sách này.

Có một số hàm trang tính khác nhau mà bạn có thể sử dụng để chọn các mục từ danh sách, chẳng hạn như NGẪU NHIÊN và NGẪU NHIÊN.

Nhiều người sử dụng hàm RANDBETWEEN vì nó rất dễ dàng và cung cấp một số ngẫu nhiên trong một phạm vi. Do đó, nếu bạn có 25 mục trong danh sách của mình, RANDBETWEEN có thể trả về một số từ 1 đến 25, sau đó có thể tương ứng với các mục trong danh sách.

Ví dụ: giả sử rằng danh sách các mục của bạn nằm trong phạm vi A2: A26 và bạn đặt tên cho phạm vi này là Các mục. Sau đó, bạn có thể đặt công thức sau vào ô C2 để trả về một số từ 1 đến số Mục:

=RANDBETWEEN(1,ROWS(Items))

Sao chép công thức này vào ô C3 và bây giờ bạn có hai số ngẫu nhiên đại diện cho các mục từ danh sách. Trong ô D2 và D3, bạn có thể đặt các công thức như thế này để lấy tên thực từ danh sách:

=INDEX(Items,C2)

Vấn đề duy nhất với cách tiếp cận này là có thể cho cả hai trường hợp RANDBETWEEN (ô C2 và C3) trả về cùng một giá trị, và do đó bạn sẽ có cùng một mục được chọn hai lần từ danh sách của mình.

Một cách để giải quyết vấn đề tiềm ẩn này là thực sự chọn ba mục từ danh sách thay vì hai. Nếu hai mục đầu tiên giống nhau, thì mục thứ ba có thể được sử dụng làm mục “dự phòng” để cung cấp mục thứ hai duy nhất. Phương pháp này không phải là hoàn hảo, vì nó có thể – nhưng hoàn toàn không thể xảy ra – rằng cả ba sẽ giống nhau.

Một cách tiếp cận khác để chọn các mục từ danh sách sẽ là gán cho mỗi mục một giá trị ngẫu nhiên của riêng nó, rồi chọn dựa trên số cao nhất trong chuỗi. Hàm RANDOM trả về một giá trị ngẫu nhiên từ 0 đến 1. Trong mỗi ô của cột B, ngay bên phải của mỗi mục trong cột A, hãy đặt công thức này:

=RAND()

Chọn phạm vi ô (B2: B26) và đặt tên cho phạm vi, sử dụng tên như ItemNums. Sau đó, bạn có thể xác định tên ngẫu nhiên đầu tiên từ danh sách bằng cách sử dụng công thức mảng sau:

=OFFSET(A$1,SUM((LARGE(ItemNums,1)=(ItemNums))*ROW(ItemNums))-1,0)

Để cho biết đây là công thức mảng, hãy nhập công thức bằng cách nhấn Shift + Ctrl + Enter. Công thức phải trả về một tên duy nhất. Sau đó, bạn có thể sử dụng công thức mảng sau để trả về tên thứ hai:

=OFFSET(A$1,SUM((LARGE(ItemNums,2)=(ItemNums))*ROW(ItemNums))-1,0)

Lý do mà sử dụng phương pháp hàm RAND hoạt động tốt hơn so với sử dụng RANDBETWEEN là vì cơ hội RAND trả về hai giá trị giống hệt nhau là rất nhỏ, trong khi cơ hội RANDBETWEEN làm như vậy cao hơn nhiều.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (12082) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.

Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: