Mục lục
Hướng dẫn tập trung vào cách thực hiện lấy mẫu ngẫu nhiên trong Excel mà không lặp lại. Bạn sẽ tìm thấy giải pháp cho Excel 365, Excel 2021, Excel 2019 và các phiên bản cũ hơn.
Cách đây ít lâu, chúng tôi đã mô tả một vài cách khác nhau để chọn ngẫu nhiên trong Excel. Hầu hết các giải pháp đó đều dựa trên các hàm RAND và RANDBETWEEN, có thể tạo ra các số trùng lặp. Do đó, mẫu ngẫu nhiên của bạn có thể chứa các giá trị lặp lại. Nếu bạn cần một lựa chọn ngẫu nhiên không trùng lặp, thì hãy sử dụng các phương pháp được mô tả trong hướng dẫn này.
Excel lựa chọn ngẫu nhiên từ danh sách không trùng lặp
Chỉ hoạt động trong Excel 365 và Excel 2021 hỗ trợ mảng động.
Để thực hiện lựa chọn ngẫu nhiên từ danh sách không lặp lại, hãy sử dụng công thức chung sau:
INDEX(SORTBY( data, RANDARRAY(ROWS( data))), SEQUENCE( n))Trong đó n là kích thước lựa chọn mong muốn.
Ví dụ: để lấy 5 tên ngẫu nhiên duy nhất từ danh sách trong A2:A10, đây là công thức để sử dụng:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))
Để thuận tiện, bạn có thể nhập cỡ mẫu vào ô ô được xác định trước, chẳng hạn như C2 và cung cấp tham chiếu ô cho hàm SEQUENCE:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))
Cách thức hoạt động của công thức này:
Dưới đây là giải thích cấp cao về logic của công thức: hàm RANDARRAY tạo một mảng các số ngẫu nhiên, SORTBY sắp xếp các giá trị ban đầu theo các số đó và INDEX truy xuất bao nhiêu giá trị bằngđược chỉ định bởi SEQUENCE.
Bảng phân tích chi tiết như sau:
Hàm ROWS đếm số lượng hàng mà tập dữ liệu của bạn chứa và chuyển số lượng đó cho hàm RANDARRAY, vì vậy, hàm này có thể tạo ra cùng một số lượng số thập phân ngẫu nhiên:
RANDARRAY(ROWS(A2:C10))
Mảng số thập phân ngẫu nhiên này được hàm SORTBY sử dụng làm mảng "sắp xếp theo". Kết quả là dữ liệu gốc của bạn bị xáo trộn ngẫu nhiên.
Từ dữ liệu được sắp xếp ngẫu nhiên, bạn trích xuất một mẫu có kích thước cụ thể. Đối với điều này, bạn cung cấp mảng đã xáo trộn cho hàm INDEX và yêu cầu truy xuất các giá trị N đầu tiên với sự trợ giúp của hàm SEQUENCE, hàm này tạo ra một chuỗi số từ 1 đến N . Vì dữ liệu gốc đã được sắp xếp theo thứ tự ngẫu nhiên nên chúng tôi không thực sự quan tâm đến vị trí cần truy xuất, chỉ quan trọng về số lượng.
Chọn hàng ngẫu nhiên trong Excel mà không trùng lặp
Chỉ hoạt động trong Excel 365 và Excel 2021 hỗ trợ mảng động.
Để chọn các hàng ngẫu nhiên không lặp lại, hãy tạo công thức theo cách sau:
INDEX(SORTBY( data, RANDARRAY(ROWS( data))), SEQUENCE( n), {1,2,…})Trong đó n là cỡ mẫu và {1,2,…} là số cột cần trích xuất.
Ví dụ: hãy chọn các hàng ngẫu nhiên từ A2:C10 không có mục nhập trùng lặp, dựa trên kích thước mẫu trong F1. Vì dữ liệu của chúng tôi có 3 cột, chúng tôi cung cấp hằng số mảng này cho công thức:{1,2,3}
=INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})
Và nhận được kết quả sau:
Cách thức hoạt động của công thức này:
Công thức hoạt động với logic chính xác như công thức trước. Một thay đổi nhỏ tạo nên sự khác biệt lớn là bạn chỉ định cả hai đối số row_num và column_num cho hàm INDEX: row_num được cung cấp bởi SEQUENCE và column_num theo hằng số mảng.
Cách thực hiện lấy mẫu ngẫu nhiên trong Excel 2010 - 2019
Vì chỉ Excel for Microsoft 365 và Excel 2021 hỗ trợ mảng động nên các hàm mảng động được sử dụng trong các ví dụ trước chỉ hoạt động trong Excel 365. Đối với các phiên bản khác, bạn sẽ phải tìm ra một giải pháp khác.
Giả sử bạn muốn lựa chọn ngẫu nhiên từ danh sách trong A2:A10. Điều này có thể được thực hiện với 2 công thức riêng biệt:
- Tạo số ngẫu nhiên bằng công thức Rand. Trong trường hợp của chúng tôi, chúng tôi nhập nó vào B2, sau đó sao chép xuống B10:
=RAND()
- Trích xuất giá trị ngẫu nhiên đầu tiên bằng công thức bên dưới mà bạn nhập vào E2:
=INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)
- Sao chép công thức trên vào bao nhiêu ô bằng bao nhiêu giá trị ngẫu nhiên mà bạn muốn chọn. Trong ví dụ này, chúng tôi muốn có 4 tên nên chúng tôi sao chép công thức từ E2 đến E5.
Hoàn tất! Mẫu ngẫu nhiên của chúng tôi không trùng lặp trông như sau:
Cách thức hoạt động của công thức này:
Giống như trong ví dụ đầu tiên, bạn sử dụng Hàm INDEX để truy xuất các giá trị từ cột A dựa trên hàng ngẫu nhiêncon số. Sự khác biệt là ở cách bạn nhận được các số đó:
Hàm RAND điền vào phạm vi B2:B10 bằng các số thập phân ngẫu nhiên.
Hàm RANK.EQ tính toán thứ hạng của một số ngẫu nhiên trong một giá trị nhất định hàng ngang. Ví dụ: trong E2, RANK.EQ(B2, $B$2:$B$10) xếp hạng số trong B2 so với tất cả các số trong B2:B10. Khi được sao chép sang E3, tham chiếu tương đối B2 thay đổi thành B3 và trả về thứ hạng của số trong B3, v.v.
Hàm COUNTIF tìm số lần xuất hiện của một số đã cho trong các ô ở trên. Ví dụ: trong E2, COUNTIF($B$2:B2, B2) chỉ kiểm tra một ô - chính B2 và trả về 1. Trong E5, công thức thay đổi thành COUNTIF($B$2:B5, B5) và trả về 2, bởi vì B5 chứa cùng giá trị với B2 (xin lưu ý, điều này chỉ để giải thích rõ hơn logic của công thức; trên một tập dữ liệu nhỏ, cơ hội nhận được các số ngẫu nhiên trùng lặp gần bằng 0).
Kết quả là, đối với tất cả Lần xuất hiện đầu tiên, COUNTIF trả về 1, từ đó bạn trừ đi 1 để giữ nguyên thứ hạng ban đầu. Đối với lần xuất hiện thứ 2, COUNTIF trả về 2. Bằng cách trừ đi 1, bạn tăng xếp hạng lên 1, do đó ngăn xếp hạng trùng lặp.
Ví dụ: đối với B2, RANK.EQ trả về 1. Vì đây là lần xuất hiện đầu tiên nên COUNTIF cũng trả về 1. RANK.EQ + COUNTIF cho 2. Và - 1 khôi phục thứ hạng 1.
Bây giờ, hãy xem điều gì xảy ra trong trường hợp xảy ra lần thứ 2. Đối với B5, RANK.EQ cũng trả về 1 trong khi COUNTIF trả về 2. Việc cộng những giá trị này sẽ cho kết quả3, từ đó bạn trừ đi 1. Kết quả cuối cùng, bạn nhận được 2, đại diện cho thứ hạng của số trong B5.
Thứ hạng thuộc về đối số row_num của hàm INDEX và nó chọn giá trị từ hàng tương ứng (đối số column_num bị bỏ qua, do đó, nó mặc định là 1). Đây là lý do tại sao nó rất quan trọng để tránh xếp hạng trùng lặp. Nếu không có hàm COUNTIF, RANK.EQ sẽ cho kết quả 1 cho cả B2 và B5, khiến INDEX trả về giá trị từ hàng đầu tiên (Andrew) hai lần.
Cách ngăn mẫu ngẫu nhiên Excel thay đổi
Vì tất cả các hàm ngẫu nhiên hóa trong Excel như RAND, RANDBETWEEN và RANDARRAY đều không ổn định nên chúng sẽ tính toán lại với mọi thay đổi trên trang tính. Do đó, mẫu ngẫu nhiên của bạn sẽ liên tục thay đổi. Để ngăn điều này xảy ra, hãy sử dụng Dán Đặc biệt > Tính năng giá trị để thay thế công thức bằng giá trị tĩnh. Để thực hiện việc này, hãy thực hiện các bước sau:
- Chọn tất cả các ô có công thức của bạn (bất kỳ công thức nào chứa hàm RAND, RANDBETWEEN hoặc RANDARRAY) và nhấn Ctrl + C để sao chép chúng.
- Nhấp chuột phải vào phạm vi đã chọn và nhấp vào Dán Đặc biệt > Giá trị . Ngoài ra, nhấn Shift + F10 rồi nhấn V , đây là phím tắt cho tính năng nêu trên.
Để biết các bước chi tiết, vui lòng xem Cách chuyển đổi công thức thành giá trị trong Excel.
Chọn ngẫu nhiên Excel: hàng, cộthoặc các ô
Hoạt động trong tất cả các phiên bản Excel 365 đến Excel 2010.
Nếu bạn đã cài đặt Ultimate Suite của chúng tôi trong Excel, thì bạn có thể thực hiện lấy mẫu ngẫu nhiên bằng một nhấp chuột thay vì một công thức. Đây là cách thực hiện:
- Trên tab Công cụ Ablebits , hãy nhấp vào Ngẫu nhiên > Chọn ngẫu nhiên .
- Chọn phạm vi mà bạn muốn chọn một mẫu.
- Trên ngăn của phần bổ trợ, hãy làm như sau:
- Chọn xem bạn có muốn chọn các hàng, cột hoặc ô ngẫu nhiên hay không.
- Xác định cỡ mẫu: có thể là tỷ lệ phần trăm hoặc số.
- Nhấp vào nút Chọn .
Đó là nó! Như trong hình bên dưới, một mẫu ngẫu nhiên được chọn trực tiếp trong tập dữ liệu của bạn. Nếu bạn muốn sao chép nó ở đâu đó, chỉ cần nhấn phím tắt sao chép thông thường (Ctrl + C) .
Đó là cách chọn một mẫu ngẫu nhiên trong Excel mà không có mẫu trùng lặp. Tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi vào tuần tới!
Có sẵn các bản tải xuống
Mẫu ngẫu nhiên không trùng lặp - ví dụ về công thức (tệp .xlsx)
Bộ cuối cùng Phiên bản đầy đủ chức năng 14 ngày (file .exe)