Tạo số ngẫu nhiên không trùng nhau trong danh sách có điều kiện

Liên hệ QC

duong22000

Thành viên thường trực
Tham gia
8/5/13
Bài viết
322
Được thích
23
Em có một vấn đề như sau:
Em cần tạo số ngẫu nhiên không trùng nhau cho một cột:
Trường hợp 1: Em sử dụng = RANDBETWEEN (A4,A12) nhưng vẫn bị trùng lặp. Em muốn không trùng lặp số
Trường hợp 2: Bây giờ chỉ lấy các thứ tự tương ứng ở cột A với các ô đã được đánh dấu ở trường hợp 2 để tạo ngẫu nhiên số và điền vào trường hợp 2
Em có gửi file mẫu, mong mọi người giúp đỡ. Em xin cảm ơn nhiều!
 

File đính kèm

  • phancong.xlsx
    11.7 KB · Đọc: 13
Em có một vấn đề như sau:
Em cần tạo số ngẫu nhiên không trùng nhau cho một cột:
Trường hợp 1: Em sử dụng = RANDBETWEEN (A4,A12) nhưng vẫn bị trùng lặp. Em muốn không trùng lặp số
Trường hợp 2: Bây giờ chỉ lấy các thứ tự tương ứng ở cột A với các ô đã được đánh dấu ở trường hợp 2 để tạo ngẫu nhiên số và điền vào trường hợp 2
Em có gửi file mẫu, mong mọi người giúp đỡ. Em xin cảm ơn nhiều!
Dữ liệu mẫu cũng không "trao chuốt" cho sạch sẽ (Hay là cố ý STT không có số 5?)
Cột A, STT: 1,2,3,4,6,7,8,9,10: Nhỡ RankBetween() ra con số 5 thì ở đâu mà có?
 
Dữ liệu mẫu cũng không "trao chuốt" cho sạch sẽ (Hay là cố ý STT không có số 5?)
Cột A, STT: 1,2,3,4,6,7,8,9,10: Nhỡ RankBetween() ra con số 5 thì ở đâu mà có?
Đó là điều kiện mà bác Ba Tê ơi, không nhất thiết là phải một dãy số liên tục mà căn cứ vào các số đã được chọn ở các trường hợp ạ. Các ô không được đánh dấu “x” ở các cột thì không có trong hiển thị số ngẫu nhiên, ví dụ trường hợp 1 chỉ lấy các số 1234678910 để điền vào các ô, trường hợp 2 thì chỉ lấy các số 2346710 tương ứng với đánh dấu “x” để điền vào các ô trường hợp 2.
Việc lấy tổ hợp các số để đánh số ngẫu nhiên không trùng lặp vào các ô có thể thay đổi theo cột đánh dấu "x"
Em mong Bác cùng mọi người thử xem có giải quyết được không thì giúp em với ạ
 
Lần chỉnh sửa cuối:
Đó là điều kiện mà bác Ba Tê ơi, không nhất thiết là phải một dãy số liên tục mà căn cứ vào các số đã được chọn ở các trường hợp ạ. Các ô không được đánh dấu “x” ở các cột thì không có trong hiển thị số ngẫu nhiên, ví dụ trường hợp 1 chỉ lấy các số 1234678910 để điền vào các ô, trường hợp 2 thì chỉ lấy các số 2346710 tương ứng với đánh dấu “x” để điền vào các ô trường hợp 2.
Việc lấy tổ hợp các số để đánh số ngẫu nhiên không trùng lặp vào các ô có thể thay đổi theo cột đánh dấu "x"
Em mong Bác cùng mọi người thử xem có giải quyết được không thì giúp em với ạ
Chắc chỉ có thể dùng VBA.
 

File đính kèm

  • phancong.xlsb
    16.6 KB · Đọc: 22
Xem thử trường hợp 1, có lẽ bạn không muốn lấy STT mà muốn lấy tên?
Trường hợp 1 là đánh dấu đủ hết trong bảng, em chạy code thấy số đưa ra ngẫu nhiên và không trùng lặp đã bỏ qua con số không có trong bảng ở cộ STT
còn trường hợp 2, với việc đánh dấu "x" bắt kỳ bào cột trường hợp 2 thì chỉ lấy các số tương ứng ở cột STT làm số ngẫu nhiên không trùng lặp điền vào các ô.
Đúng như Bác Ba Tê đã đoán được ý của em, từ đây em sẽ dùng thêm hàm Vlookup để hiển thị tên muốn lấy tương ứng với số ngẫu nhiên vào trong bảng phân công (Phân công những người được chọn "x" trong bảng này sẽ hiển thị ngẫu nhiên vào trong bảng phân công khác dựa vào các trường hợp lấy số ngẫu nhiên không trùng lặp này).
Còn trường hợp 2 nữa, mong Bác tiếp tục ra tay giúp đỡ ạ.
 
Trường hợp 1 là đánh dấu đủ hết trong bảng, em chạy code thấy số đưa ra ngẫu nhiên và không trùng lặp đã bỏ qua con số không có trong bảng ở cộ STT
còn trường hợp 2, với việc đánh dấu "x" bắt kỳ bào cột trường hợp 2 thì chỉ lấy các số tương ứng ở cột STT làm số ngẫu nhiên không trùng lặp điền vào các ô.
Đúng như Bác Ba Tê đã đoán được ý của em, từ đây em sẽ dùng thêm hàm Vlookup để hiển thị tên muốn lấy tương ứng với số ngẫu nhiên vào trong bảng phân công (Phân công những người được chọn "x" trong bảng này sẽ hiển thị ngẫu nhiên vào trong bảng phân công khác dựa vào các trường hợp lấy số ngẫu nhiên không trùng lặp này).
Còn trường hợp 2 nữa, mong Bác tiếp tục ra tay giúp đỡ ạ.
Mần luôn tên chứ Vlookup() làm gì nữa?
 

File đính kèm

  • phancong.xlsb
    18.1 KB · Đọc: 23
Mần luôn tên chứ Vlookup() làm gì nữa?
Nếu bình thường ngẫu nhiên vậy là xong không cần Vlookup nhưng sau khi tạo ngẫu nhiên rồi em lại chọn giá trị.value sau đó có thể điền thủ công thay thế 1 số ô (mỗi số tương ứng với một vị trí, có thể điều chỉnh thủ công vì có thể mọi người đổi vị trí cho nhau). Như trường hợp 1 của bác đưa trên thì sau khi chạy code để đánh số ngẫu nhiên thì em có thể thay đổi các con số đó cho phù hợp nếu có người cần đổi sang vị trí khác (có thể đổi 2 số của người này cho nhau...)
 
"Chọn số ngẫu nhiên không trùng" là một vấn đề rất hiếm khi gặp cho người sử dụng Excel. Bởi vì nếu không hiếm thì Microsoft đã có hàm hay phương án tương đối giản dị để làm việc này rồi.

Tuy nhiên, dân VN sử dụng bảng tính theo phương cách riêng, và một số công việc đáng lẽ là hiếm lại trở thành thường xuyên. "Chọn số ngẫu nhiên không trùng", và "chọn (hoặc xáo trộn) ngẫu nhiên từ một danh sách" là hai trong những công việc này.

Nói như trên có nghĩa là: vấn đề này có cả đống câu hỏi và câu trả lời trên GPE. Cứ chịu khó tìm sẽ thấy.
 
"Chọn số ngẫu nhiên không trùng" là một vấn đề rất hiếm khi gặp cho người sử dụng Excel. Bởi vì nếu không hiếm thì Microsoft đã có hàm hay phương án tương đối giản dị để làm việc này rồi.

Tuy nhiên, dân VN sử dụng bảng tính theo phương cách riêng, và một số công việc đáng lẽ là hiếm lại trở thành thường xuyên. "Chọn số ngẫu nhiên không trùng", và "chọn (hoặc xáo trộn) ngẫu nhiên từ một danh sách" là hai trong những công việc này.

Nói như trên có nghĩa là: vấn đề này có cả đống câu hỏi và câu trả lời trên GPE. Cứ chịu khó tìm sẽ thấy.
Cảm ơn bạn đã quan tâm và góp ý cho mình !
 
Web KT
Back
Top Bottom