Anh/chị cho mình hỏi random trong chuỗi cho sẵn

Liên hệ QC

tuantruong2808

Thành viên mới
Tham gia
4/8/18
Bài viết
39
Được thích
3
Anh/chị cho hỏi cách mình random theo 1 chuỗi cho sẵn mình gắn số học viên nam và nữ là chẵn lẽ ví dụ 2 4 6 8 10 12 14 16 18 ... den 50
mình muốn mỗi lần chọn ra 3 em học viên nam trong chuỗi này ví dụ 12 48 04 hay 28 32 50,... thì là cách nào ah vì randbetwen không được, mình cám ơn
mình có gửi file lên nhờ anh chị giúp dùm.
 

File đính kèm

Bạn tạm cho chạy thử macro này:
PHP:
Sub LayNgauNhien3Nhom3Em()
 Dim StrC As String, sNum As String
 Dim J As Long, W As Integer, Num As Integer
 Dim Cls As Range
 
 For Each Cls In Range([A1], [A1].End(xlDown))
    StrC = StrC & Right("0" & CStr(Cls.Value), 2)
 Next Cls
 Randomize
 For J = 1 To 3
    For W = 4 To 6
        Num = 1 + 9 * Rnd() \ 1
        If Num Mod 2 = 0 Then Num = Num + 1
        Cells(J, W).Value = Mid(StrC, Num, 2)
        StrC = Mid(StrC, Num + 2, Len(StrC)) & Left(StrC, Num - 1)
    Next W
 Next J
End Sub
 
Radom số chẵn từ 1 đến 50 tức là random(1:25)*2
Tương tự, số lẻ là random(1:25)*2-1
 
Anh/chị cho hỏi cách mình random theo 1 chuỗi cho sẵn mình gắn số học viên nam và nữ là chẵn lẽ ví dụ 2 4 6 8 10 12 14 16 18 ... den 50
mình muốn mỗi lần chọn ra 3 em học viên nam trong chuỗi này ví dụ 12 48 04 hay 28 32 50,... thì là cách nào ah vì randbetwen không được, mình cám ơn
mình có gửi file lên nhờ anh chị giúp dùm.
Tạo số ngẫu nhiên cho các đợt không trùng lặp. Thử:
Mã:
D2=OFFSET($A$1,MOD(AGGREGATE(15,6,(RANDBETWEEN(1,26-ROW($1:$25))*10^3+ROW($1:$25))/(COUNTIF($D$1:$F1,$A$1:$A$25)=0)/(COUNTIF($C2:C2,$A$1:$A$25)=0),1),10^3)-1,)
Enter, fill qua phải, rồi copy xuống dưới.

Thân
 

File đính kèm

Bạn tạm cho chạy thử macro này:
PHP:
Sub LayNgauNhien3Nhom3Em()
Dim StrC As String, sNum As String
Dim J As Long, W As Integer, Num As Integer
Dim Cls As Range

For Each Cls In Range([A1], [A1].End(xlDown))
    StrC = StrC & Right("0" & CStr(Cls.Value), 2)
Next Cls
Randomize
For J = 1 To 3
    For W = 4 To 6
        Num = 1 + 9 * Rnd() \ 1
        If Num Mod 2 = 0 Then Num = Num + 1
        Cells(J, W).Value = Mid(StrC, Num, 2)
        StrC = Mid(StrC, Num + 2, Len(StrC)) & Left(StrC, Num - 1)
    Next W
Next J
End Sub
Cám ơn bạn mình sài macro không được bạn ơi. máy công ty mở file macro là nó delete ngay, với lại mình cũng ko biết macro. rất cám ơn bạn đã bỏ thời gian viết cho mình.
 
Chịu bạn!
Kiến thức của mình đã kém rồi.
Nhưng thấy bạn trả lời bài của thầy @SA_DQ như vậy thì mình thấy trình độ của bạn lại quá kém
Thế bài toán như này thì bạn áp dụng để làm gì?
 
Cám ơn bạn mình sài macro không được bạn ơi. máy công ty mở file macro là nó delete ngay, với lại mình cũng ko biết macro. rất cám ơn bạn đã bỏ thời gian viết cho mình.
Công ty không cho xài file có macro thì cũng phải có biện pháp tránh người ta dùng công thức khủng chứ!

Không cho mở file có macro nhưng có cho chạy macro không?
1. chép code vào 1 sheet
2. hide sheet ấy
3. mỗi lần cần chạy thì mở cửa sổ VBE, và copy code ấy vào mà dùng.

(tôi mách cho những bạn muốn chạy macro mà không thể lưu file xlsm. Chứ thớt thì đã khẳng định là không dùng VBA)
 
Công ty không cho xài file có macro thì cũng phải có biện pháp tránh người ta dùng công thức khủng chứ!

Không cho mở file có macro nhưng có cho chạy macro không?
1. chép code vào 1 sheet
2. hide sheet ấy
3. mỗi lần cần chạy thì mở cửa sổ VBE, và copy code ấy vào mà dùng.

(tôi mách cho những bạn muốn chạy macro mà không thể lưu file xlsm. Chứ thớt thì đã khẳng định là không dùng VBA)
Bác ơi chắc là dùng phần mềm diệt virut nên nó không cho chạy macro
 
Bác ơi chắc là dùng phần mềm diệt virut nên nó không cho chạy macro
Mình mở file xlsx lên, tự copy code vào project và chạy mà diệt vi rút cũng biết à?
Theo tôi nghĩ là chỉ khi nào system admin gài group policy không cho Excel mở VBA lên thì mới chịu thua thôi.
 
Mình mở file xlsx lên, tự copy code vào project và chạy mà diệt vi rút cũng biết à?
Theo tôi nghĩ là chỉ khi nào system admin gài group policy không cho Excel mở VBA lên thì mới chịu thua thôi.
hoặc không cài VBA trong excel luôn từ đầu thì cũng không chạy được bác ah.
 
Tạo số ngẫu nhiên cho các đợt không trùng lặp. Thử:
Mã:
D2=OFFSET($A$1,MOD(AGGREGATE(15,6,(RANDBETWEEN(1,26-ROW($1:$25))*10^3+ROW($1:$25))/(COUNTIF($D$1:$F1,$A$1:$A$25)=0)/(COUNTIF($C2:C2,$A$1:$A$25)=0),1),10^3)-1,)
Enter, fill qua phải, rồi copy xuống dưới.

Thân
đúng như vậy rồi bạn giải thích sơ dùm mình được không bạn. cái hàm aggregate sao bạn biết vậy. mình sài excel hơn chục năm giờ mới thấy hàm này. cám ơn bạn.
 
cái hàm aggregate sao bạn biết vậy. mình sài excel hơn chục năm giờ mới thấy hàm này. cám ơn bạn.
Không có chi, đừng khách sáo!
Cái hàm này tự nhiên lên GPE, rồi tự nhiên biết à, vì xuất hiện đầy rẫy!
Bạn sài excel hơn chục năm không biết là lẽ đương nhiên (năm2019-10.5năm( hơn chục năm) =năm2008rưỡi=>nó chưa ra đời).
đúng như vậy rồi bạn giải thích sơ dùm mình được không bạn.
Được chứ! có gì mà không giải thích được đâu? Tui xài randbetween theo 1 chuỗi cho sẵn, tui phân ra tùy theo số học viên nam/nữ là chẵn hay lẻ, rồi tui chọn mỗi lần ra 3 em học viên tùy hỹ, Vd: nam 2 4 6, nữ thì 3 5 7 ... bất kỳ.

Vậy hén!
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom