Menu

Tạo số ngẫu nhiên trong Excel: RAND, RANDBETWEEN, RANDARRAY

=RANDBETWEEN(1,100) trả về một số nguyên ngẫu nhiên từ 1 đến 100, còn =RAND() trả về một số thập phân ngẫu nhiên từ 0 đến dưới 1. RANDARRAY lấp đầy cả một vùng, INDEX kết hợp RANDBETWEEN chọn ngẫu nhiên một mục, và Paste Special > Values giữ cố định kết quả.

Mọi bảng tính trên trang này đều trực tiếp: đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

=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.

Số ngẫu nhiên
B2
AB
1FormulaResult
2Decimal 0 to 10.256679579
3Whole 1 to 10024
4Die roll4
5CoinTails
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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.

Giá trị ngẫu nhiên trong một khoảng
D2
ABCD
1MinMaxKindRandom value
21050Whole46
31050Decimal49.74
42026-01-012026-12-31Date2026-09-04
5-55Whole-5
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đổ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.

RANDARRAY trả tràn một khối số
A2
ABCD
1Whole numbers 1 to 100Decimals 0 to 1
26423310.040617832
38389550.480702855
49578920.305043489
5436920.133745562
64473640.581903097
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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.

Người thắng ngẫu nhiên
C2
ABC
1NameWinner
2AnaFinn
3Ben
4Cleo
5Dan
6Eve
7Finn
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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.

Danh sách đã xáo trộn và 3 số khác nhau từ 1 đến 20
C2
ABCDE
1NameShuffled3 of 1 to 20
2AnaFinn8
3BenBen3
4CleoAna12
5DanCleo
6EveEve
7FinnDan
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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.

Đổi giá trị RAND thành số nguyên
C2
ABCDE
1ItemRAND valueWhole numberMinMax
2Draw 10.372512
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đế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ị:

  1. Chọn các ô và sao chép (Ctrl+C, hoặc Cmd+C trên Mac).
  2. 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 đó.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu