Tạo Số Ngẫu Nhiên Trong Google Sheets: Hàm & Ứng Dụng Thực Tế 2026
Mục lục:
- 1. Các hàm tạo số ngẫu nhiên có sẵn trong Google Sheets
- 2. Vấn đề "số nhảy liên tục" và cách khóa kết quả
- 3. Ứng dụng thực tế: quay số trúng thưởng công bằng
- 4. Ứng dụng trong vận hành: chia lịch, random mã, tạo dữ liệu mẫu
- 5. Sai lầm thường gặp và cách khắc phục
- 6. Random có trọng số: khi các lựa chọn không đồng đều
- 7. Câu hỏi thường gặp
Bạn cần chọn ngẫu nhiên 1 khách hàng trúng thưởng từ danh sách 500 người, chia ca trực random cho nhân viên, hoặc tạo dữ liệu test cho một bảng tính mới — tất cả đều quy về một bài toán: làm sao Google Sheets tạo ra số ngẫu nhiên đáng tin cậy. Hàm có sẵn khá đơn giản, nhưng dùng sai cách (ví dụ để công thức tự tính lại liên tục) sẽ khiến kết quả "nhảy số" ngoài ý muốn. Dưới đây là toàn bộ hàm liên quan, cách dùng đúng và các tình huống thực tế hay gặp.
Các hàm tạo số ngẫu nhiên có sẵn trong Google Sheets
Google Sheets cung cấp 3 hàm chính để sinh số ngẫu nhiên, khác nhau ở phạm vi và kiểu dữ liệu trả về.
RAND() — số thập phân từ 0 đến 1
Cú pháp: =RAND(). Hàm không nhận tham số, trả về một số thập phân ngẫu nhiên trong khoảng [0, 1) — tức có thể ra 0 nhưng không bao giờ ra đúng 1. Đây là hàm nền để xây các công thức phức tạp hơn, ví dụ random một số trong khoảng tùy ý bằng cách nhân và cộng thêm offset.
RANDBETWEEN(min, max) — số nguyên trong khoảng cho trước
Cú pháp: =RANDBETWEEN(1, 100) trả về số nguyên ngẫu nhiên từ 1 đến 100, bao gồm cả hai đầu mút. Đây là hàm dùng nhiều nhất trong thực tế vì hầu hết nhu cầu (quay số trúng thưởng, random mã giảm giá, random ID) đều cần số nguyên trong một khoảng xác định. Lưu ý: nếu min > max, hàm sẽ trả về lỗi.
RANDARRAY(rows, columns) — sinh nguyên mảng số ngẫu nhiên
Cú pháp: =RANDARRAY(10, 3) tạo một mảng 10 dòng x 3 cột, mỗi ô là số thập phân ngẫu nhiên [0,1). Hàm này hữu ích khi cần tạo dữ liệu test hàng loạt mà không phải kéo công thức thủ công. Kết hợp với ROUND hoặc phép nhân/cộng, bạn có thể tạo cả bảng số nguyên ngẫu nhiên chỉ trong một công thức.
| Hàm | Kết quả trả về | Ví dụ | Dùng khi nào |
|---|---|---|---|
| RAND() | Thập phân [0,1) | 0.7231 | Random xác suất, shuffle danh sách |
| RANDBETWEEN(a,b) | Số nguyên [a,b] | RANDBETWEEN(1,10) → 7 | Quay số, random ID, mã phiếu |
| RANDARRAY(r,c) | Mảng thập phân | RANDARRAY(5,2) | Sinh dữ liệu test hàng loạt |
Vấn đề "số nhảy liên tục" và cách khóa kết quả
Điểm gây khó chịu nhất khi dùng RAND/RANDBETWEEN: đây là các hàm volatile (dễ bay hơi) — Google Sheets tính lại giá trị mới mỗi khi bảng tính có bất kỳ thay đổi nào (gõ vào ô khác, thêm dòng, thậm chí chỉ mở lại file). Nếu bạn cần một danh sách số ngẫu nhiên cố định để lưu trữ hoặc đối chiếu sau này, phải "đóng băng" giá trị.
Cách 1: Copy → Paste Special (giá trị)
- Chọn vùng chứa công thức RAND/RANDBETWEEN
- Ctrl+C để copy
- Chuột phải → Paste special → Chỉ dán giá trị (Paste values only)
Công thức sẽ biến thành số cố định, không còn tự tính lại. Đây là cách nhanh nhất cho việc quay số một lần.
Cách 2: Dùng công thức với điều kiện khóa
Nếu muốn số ngẫu nhiên chỉ sinh một lần cho mỗi dòng mới (ví dụ khi thêm khách hàng vào danh sách), có thể kết hợp IF để kiểm tra ô đã có giá trị chưa:
=IF(A2="", RANDBETWEEN(1000,9999), A2)
Công thức này chỉ sinh số mới khi ô A2 (tham chiếu chính nó) đang trống — nhưng lưu ý cách này dễ gây lỗi tham chiếu vòng (circular reference) nếu áp dụng sai cột. Cách an toàn hơn là dùng Apps Script để sinh số một lần rồi ghi giá trị tĩnh vào ô, tránh phụ thuộc vào cơ chế tính lại của Sheets.
Ứng dụng thực tế: quay số trúng thưởng công bằng
Đây là use case phổ biến nhất — chọn ngẫu nhiên 1 hoặc nhiều người từ danh sách mà không thiên vị.
Cách làm với danh sách cố định
- Đặt danh sách khách hàng ở cột A, từ A2 đến A501 (500 người)
- Tạo cột B với công thức
=RAND()cho từng dòng — đây là "số vé số" ngẫu nhiên gán cho mỗi người - Copy cột B, Paste Special chỉ giá trị để khóa số lại
- Sắp xếp toàn bộ bảng theo cột B tăng dần — người có giá trị nhỏ nhất đứng đầu chính là người trúng giải
Cách này minh bạch hơn dùng trực tiếp =INDEX(A2:A501, RANDBETWEEN(1,500)) vì bạn có thể lưu lại toàn bộ bảng đã sắp xếp làm bằng chứng khi cần giải trình với khách hàng hoặc đối tác.
Chọn nhiều người trúng thưởng cùng lúc
Nếu cần chọn 5 người trúng giải khuyến mãi, lặp lại bước sắp xếp ở trên rồi lấy 5 dòng đầu tiên. Tránh dùng RANDBETWEEN lặp lại nhiều lần vì có thể ra trùng số thứ tự, dẫn đến trùng người trúng thưởng — kỹ thuật gán RAND() rồi sắp xếp giải quyết triệt để vấn đề này vì mỗi dòng chỉ có một giá trị duy nhất.
Ứng dụng trong vận hành: chia lịch, random mã, tạo dữ liệu mẫu
Random phân ca trực hoặc phân công việc
Với đội ngũ nhỏ cần chia ca công bằng, dùng RANDBETWEEN(1, số_nhân_viên) để ánh xạ vào bảng tên qua INDEX. Cách này thường được lồng vào các file quản lý lịch trực — nếu bạn đang xây lịch quản lý dự án trên Google Sheets, có thể thêm cột random để tự động gợi ý người phụ trách task mới thay vì phân công thủ công.
Tạo mã phiếu giảm giá hoặc mã đơn hàng ngẫu nhiên
Kết hợp RANDBETWEEN với hàm nối chuỗi để tạo mã có định dạng: ="KM"&RANDBETWEEN(10000,99999) cho ra mã dạng KM48273. Với các cửa hàng bán lẻ cần random mã khuyến mãi hàng loạt, cách này nhanh hơn nhiều so với đặt mã thủ công — nội dung này cũng liên quan đến quy trình quản lý khuyến mãi được đề cập trong giải pháp Google Sheets cho ngành bán lẻ. Nếu cần mã có thể quét được ngay tại quầy, có thể chuyển mã ngẫu nhiên này thành ảnh QR bằng kỹ thuật trong bài tạo mã QR code tự động trong Google Sheets.
Tạo số hóa đơn hoặc mã theo dõi ngẫu nhiên nhưng không trùng
RANDBETWEEN không đảm bảo tính duy nhất — hai dòng hoàn toàn có thể ra cùng một số. Với các trường hợp cần mã không trùng lặp như số hóa đơn (tham khảo thêm cách đánh số tự động trong mẫu hóa đơn Google Sheets tự động đánh số) hoặc mã khách hàng trong hệ thống CRM quản lý khách hàng, nên dùng số thứ tự tăng dần (ROW() hoặc auto-number) thay vì số ngẫu nhiên thuần túy — hoặc nếu vẫn cần tính ngẫu nhiên (ví dụ để tránh đoán được số hóa đơn tiếp theo), phải thêm bước kiểm tra trùng bằng COUNTIF trước khi chấp nhận giá trị.
Sai lầm thường gặp và cách khắc phục
| Sai lầm | Hậu quả | Cách khắc phục |
|---|---|---|
| Để công thức RAND sống trong bảng lưu trữ lâu dài | Số thay đổi mỗi lần mở file, mất dữ liệu gốc | Paste Special → chỉ giá trị ngay sau khi random |
| Dùng RANDBETWEEN để tạo mã không trùng | Trùng mã, sai lệch dữ liệu | Kết hợp COUNTIF kiểm tra trùng hoặc dùng số thứ tự |
| Random trực tiếp bằng INDEX+RANDBETWEEN cho nhiều người trúng thưởng | Có thể chọn trùng 1 người 2 lần | Gán RAND() cho từng dòng rồi sắp xếp, lấy top N |
| RANDBETWEEN(max, min) — nhập ngược thứ tự | Trả về lỗi #NUM! | Luôn đảm bảo tham số đầu nhỏ hơn tham số sau |
Random có trọng số: khi các lựa chọn không đồng đều
Đôi khi bạn cần random nhưng không phải với xác suất bằng nhau cho mọi lựa chọn — ví dụ random một sản phẩm để hiển thị quảng cáo, trong đó sản phẩm sắp hết hàng cần xuất hiện ít hơn. Cách làm: tạo một cột "trọng số tích lũy" (cumulative weight), sau đó dùng RAND() nhân với tổng trọng số rồi tra cứu bằng INDEX kết hợp MATCH theo kiểu tìm gần đúng.
Ví dụ đơn giản với 3 sản phẩm có trọng số 5, 3, 2 (tổng 10): sản phẩm A chiếm khoảng giá trị tích lũy 0–5, B là 5–8, C là 8–10. Sinh số ngẫu nhiên từ 0 đến 10 bằng =RAND()*10, rồi dùng MATCH để xác định số đó rơi vào khoảng nào — từ đó suy ra sản phẩm tương ứng. Kỹ thuật này phức tạp hơn RANDBETWEEN thông thường nhưng cần thiết khi các hạng mục có xác suất xuất hiện khác nhau trong thực tế kinh doanh.
Câu hỏi thường gặp
Hàm RAND và RANDBETWEEN trong Google Sheets khác nhau thế nào?
RAND() trả về số thập phân ngẫu nhiên từ 0 đến 1, thường dùng để xáo trộn hoặc tạo tỷ lệ. RANDBETWEEN(min, max) trả về số nguyên ngẫu nhiên trong khoảng cho trước, phù hợp khi cần bốc thăm, quay số hoặc chọn ID ngẫu nhiên.
Làm sao để số ngẫu nhiên không tự thay đổi mỗi khi mở lại file?
Các hàm RAND, RANDBETWEEN tự tính lại mỗi khi Sheet cập nhật. Để cố định giá trị, copy ô chứa công thức rồi Paste Special > Chỉ dán giá trị (Ctrl+Shift+V), khi đó số ngẫu nhiên sẽ đứng yên.
Cách tạo danh sách số ngẫu nhiên không trùng lặp trong Google Sheets?
Dùng kết hợp RANDARRAY hoặc RAND với hàm SORT và UNIQUE, hoặc tạo cột phụ RAND() rồi sắp xếp theo cột đó để xáo trộn thứ tự danh sách mà không trùng số, phù hợp bốc thăm trúng thưởng công bằng.
Có thể dùng số ngẫu nhiên trong Google Sheets để mô phỏng dữ liệu thử nghiệm không?
Có. RANDBETWEEN và RANDARRAY thường dùng để sinh dữ liệu giả lập (doanh số, điểm số, mã đơn hàng) phục vụ test template, demo báo cáo hoặc luyện tập phân tích dữ liệu trước khi áp dụng số liệu thật.
Bài viết liên quan:
Bạn muốn áp dụng ngay mà không phải tự xây từ đầu?
Khám phá các mẫu Google Sheets và phần mềm quản lý dựng sẵn cho doanh nghiệp Việt tại SheetStore Marketplace.
📚 Bài Viết Liên Quan
- AI Tự Động Hóa Báo Cáo Google Sheets 2027: Dùng Hàm =AI() & Gemini Viết Báo Cáo Thay Bạn
- Template Google Sheets Theo Doi Du An IT va Phan Mem 2027: Agile Sprint Board Don Gian
- Template Google Sheets Quản Lý Tài Sản Cho Thuê Bất Động Sản 2027: Phòng Trọ Đến Căn Hộ
- Xu Hướng Google Sheets 2027: AI, Tables & 5 Tính Năng Mới Thay Đổi Cách Làm Việc
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.


