=RANDBETWEEN(1,100) trả về một số nguyên ngẫu nhiên từ 1 đến 100, tính cả hai đầu. =RAND() trả về một số thập phân ngẫu nhiên lớn hơn hoặc bằng 0 và nhỏ hơn 1. Cả hai cho ra số mới mỗi khi trang tính tính lại.
| A | B | |
|---|---|---|
| 1 | Formula | Result |
| 2 | Decimal 0 to 1 | 0.256679579 |
| 3 | Whole 1 to 100 | 24 |
| 4 | Die roll | 4 |
| 5 | Coin | Tails |
Sửa một ô bất kỳ (ví dụ gõ một từ vào A6) và mọi kết quả đều thay đổi. Trong Excel, điều này xảy ra mỗi khi bạn sửa bất kỳ đâu trong workbook, và F9 buộc tạo một bộ số mới. Các con số bạn thấy ở đây không giống với những gì người đọc khác thấy.
Cú pháp RAND và RANDBETWEEN
=RAND()
=RANDBETWEEN(bottom, top)
RAND không nhận đối số nào, nhưng vẫn phải có cặp ngoặc rỗng. RANDBETWEEN nhận số nguyên nhỏ nhất và lớn nhất mà hàm có thể trả về, và trả về #NUM! nếu bottom lớn hơn top.
Số ngẫu nhiên giữa hai giá trị
RANDBETWEEN chỉ trả về số nguyên. Để có số thập phân ngẫu nhiên trong một khoảng, hãy co giãn RAND: nhân với độ rộng của khoảng rồi cộng giá trị nhỏ nhất. Bọc trong ROUND để giữ hai chữ số thập phân.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Min | Max | Kind | Random value |
| 2 | 10 | 50 | Whole | 46 |
| 3 | 10 | 50 | Decimal | 49.74 |
| 4 | 2026-01-01 | 2026-12-31 | Date | 2026-09-04 |
| 5 | -5 | 5 | Whole | -5 |
Đổi giá trị nhỏ nhất và lớn nhất ở cột A và B, kết quả vẫn nằm trong khoảng mới. Trong Excel, ngày là số nguyên, nên RANDBETWEEN giữa hai ngày trả về một ngày ngẫu nhiên; hãy định dạng ô thành ngày (Home > Number Format > Short Date), nếu không ô sẽ hiện số sê-ri. Cận âm cũng dùng được.
RANDARRAY: nhiều số ngẫu nhiên cùng lúc
Trong Excel 365 và Excel 2021, =RANDARRAY(rows, columns, min, max, whole_number) lấp đầy cả một vùng từ một ô duy nhất. Mọi đối số đều không bắt buộc: =RANDARRAY(5) cho năm số thập phân từ 0 đến 1 theo một cột.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Whole numbers 1 to 100 | Decimals 0 to 1 | ||
| 2 | 64 | 23 | 31 | 0.040617832 |
| 3 | 83 | 89 | 55 | 0.480702855 |
| 4 | 95 | 78 | 92 | 0.305043489 |
| 5 | 4 | 36 | 92 | 0.133745562 |
| 6 | 44 | 73 | 64 | 0.581903097 |
A2 lấp đầy A2:C6 bằng số nguyên (đối số cuối, TRUE, yêu cầu số nguyên; bỏ đi nếu muốn số thập phân). Excel 2019 trở về trước không có RANDARRAY: hãy viết =RANDBETWEEN(1,100) vào một ô rồi kéo ra cả vùng.
Chọn ngẫu nhiên một mục trong danh sách
Để bốc thăm ngẫu nhiên một tên, một sản phẩm hay một câu hỏi, hãy chọn một vị trí ngẫu nhiên bằng RANDBETWEEN và trả về mục ở vị trí đó bằng INDEX. COUNTA đếm số tên, nên vùng có thể kéo dài quá danh sách vào các hàng trống: =INDEX(A2:A100,RANDBETWEEN(1,COUNTA(A2:A100))) vẫn hoạt động khi bạn thêm tên bên dưới.
| A | B | C | |
|---|---|---|---|
| 1 | Name | Winner | |
| 2 | Ana | Finn | |
| 3 | Ben | ||
| 4 | Cleo | ||
| 5 | Dan | ||
| 6 | Eve | ||
| 7 | Finn |
Mỗi tên có cơ hội như nhau, một phần sáu. Hai ô dùng công thức này có thể bốc trúng cùng một tên; nếu cần nhiều người thắng khác nhau, hãy xáo trộn danh sách (phần tiếp theo) rồi lấy các hàng trên cùng.
Xáo trộn danh sách và tạo số ngẫu nhiên không trùng
=SORTBY(A2:A7,RANDARRAY(6)) sắp xếp danh sách theo sáu số ngẫu nhiên, tức là đưa nó về thứ tự ngẫu nhiên. Vì mỗi mục chỉ xuất hiện một lần nên kết quả không bao giờ trùng, và đây là cách thông dụng để bốc nhiều tên hoặc nhiều số khác nhau trong Excel 365 và 2021.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Shuffled | 3 of 1 to 20 | ||
| 2 | Ana | Finn | 8 | ||
| 3 | Ben | Ben | 3 | ||
| 4 | Cleo | Ana | 12 | ||
| 5 | Dan | Cleo | |||
| 6 | Eve | Eve | |||
| 7 | Finn | Dan |
E2 xáo trộn các số từ 1 đến 20 do SEQUENCE tạo ra và giữ ba số đầu bằng TAKE, nên ba số luôn khác nhau. TAKE cần Microsoft 365 hoặc Excel 2024; trong Excel 2021 hãy viết =INDEX(SORTBY(SEQUENCE(20),RANDARRAY(20)),SEQUENCE(3)). Trong Excel 2019, đặt =RAND() vào một cột phụ cạnh danh sách rồi sắp xếp danh sách theo cột đó bằng Data > Sort.
Thử ngay: tự co giãn một giá trị ngẫu nhiên
RANDBETWEEN chính là RAND được co giãn theo một khoảng rồi cắt thành số nguyên. Ở đây B2 chứa một giá trị RAND từng trả về, đã dán dưới dạng giá trị nên không đổi nữa.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Item | RAND value | Whole number | Min | Max |
| 2 | Draw 1 | 0.372 | 5 | 12 |
Đến lượt bạn: B2 chứa một giá trị từ RAND. Ở C2, hãy đổi nó thành số nguyên từ giá trị nhỏ nhất ở D2 đến giá trị lớn nhất ở E2, tính cả hai đầu, giống cách RANDBETWEEN làm: nhân với số lượng số có thể có, bỏ phần thập phân bằng INT, rồi cộng giá trị nhỏ nhất.
Gợi ý: từ 5 đến 12 có E2-D2+1 số có thể có, tức là 8.
Lỗi thường gặp: kết quả thay đổi sau khi đã dùng
Một lần bốc thăm ngẫu nhiên mà thay đổi ở lần sửa tiếp theo thì không dùng được để ghi lại ai thắng hay hàng nào được chọn vào mẫu. Khi đã có những con số mong muốn, hãy đổi chúng thành giá trị:
- Chọn các ô và sao chép (Ctrl+C, hoặc Cmd+C trên Mac).
- Home > Paste > Values. Trên Windows, nhấn Ctrl+Alt+V, rồi V, rồi Enter; trên Mac, nhấn Ctrl+Cmd+V và chọn Values.
Với một ô, nhấn F2 để sửa, F9 để thay công thức bằng kết quả hiện tại, rồi Enter. Nếu cần cùng một bộ số "ngẫu nhiên" mỗi lần, cho một bài kiểm tra hay bài tập trên lớp, Excel không có đối số seed: hãy dán giá trị một lần và giữ lại trang tính đó. RAND phù hợp để lấy mẫu, làm trò chơi và tạo dữ liệu thử, nhưng không dùng cho mật khẩu hay bất cứ thứ gì liên quan đến bảo mật.
Câu hỏi thường gặp
Làm sao để tạo số ngẫu nhiên giữa hai số trong Excel?
Với số nguyên, dùng =RANDBETWEEN(10,50), hàm này có thể trả về cả 10 lẫn 50. Với số thập phân, dùng =RAND()*(50-10)+10, hoặc =RANDARRAY(1,1,10,50) trong Excel 365 hay 2021.
Làm sao để số ngẫu nhiên không thay đổi nữa trong Excel?
Thay công thức bằng giá trị của nó: sao chép các ô, rồi chọn Home > Paste > Values. Trên Windows, Ctrl+Alt+V, V, Enter cũng làm được việc này; trên Mac, Ctrl+Cmd+V mở Paste Special, rồi bạn chọn Values. Với một ô, nhấn F2, rồi F9 (Fn+F9 trên một số laptop), rồi Enter.
Làm sao để chọn ngẫu nhiên một tên trong danh sách Excel?
Dùng =INDEX(A2:A7,RANDBETWEEN(1,COUNTA(A2:A7))). COUNTA đếm số tên, RANDBETWEEN chọn một vị trí và INDEX trả về tên ở vị trí đó.
Làm sao để tạo số ngẫu nhiên không trùng lặp trong Excel?
Xáo trộn một dãy số rồi lấy vài số đầu: =TAKE(SORTBY(SEQUENCE(50),RANDARRAY(50)),6) cho 6 số khác nhau từ 1 đến 50 trong Excel 365. Trong Excel 2021, vốn không có TAKE, dùng =INDEX(SORTBY(SEQUENCE(50),RANDARRAY(50)),SEQUENCE(6)). RANDBETWEEN ở nhiều ô có thể ra số trùng nhau.
Làm sao để tạo ngày ngẫu nhiên trong Excel?
Dùng RANDBETWEEN với hai ngày: =RANDBETWEEN(DATE(2026,1,1),DATE(2026,12,31)) trả về một ngày ngẫu nhiên trong năm 2026. Định dạng ô thành ngày, nếu không ô sẽ hiện số sê-ri của ngày đó.