Tạo mã số bất kì thỏa mã điều kiện

Liên hệ QC

gio_rung

Thành viên mới
Tham gia
22/3/18
Bài viết
5
Được thích
0
Giới tính
Nam
Chào các anh chị em!
Nhờ mọi người giúp cho công thức tự động điền 1 số bất kì với điều kiện cụ thể.
Như trong bảng đính kèm có sẵn 3 cột. Cột A - MS đánh số từ 1. và cột C với nội dung D, TB, K. Tại ô D4 đến D8, em muốn tại mỗi ô tự động chọn 1 số bất kì tại cột A thỏa mãn điều kiện phần ND là TB (chẳng hạn) và các số chọn từ ô D4 đến D8 không trùng nhau.
Mong được mọi người giúp đỡ. Trân trọng cảm ơn!
 

File đính kèm

  • BookH.xlsx
    10.6 KB · Đọc: 14
Chào các anh chị em!
Nhờ mọi người giúp cho công thức tự động điền 1 số bất kì với điều kiện cụ thể.
Như trong bảng đính kèm có sẵn 3 cột. Cột A - MS đánh số từ 1. và cột C với nội dung D, TB, K. Tại ô D4 đến D8, em muốn tại mỗi ô tự động chọn 1 số bất kì tại cột A thỏa mãn điều kiện phần ND là TB (chẳng hạn) và các số chọn từ ô D4 đến D8 không trùng nhau.
Mong được mọi người giúp đỡ. Trân trọng cảm ơn!

Trong D4, bạn thử dùng công thức sau:

Mã:
=AGGREGATE(14,6,$A$4:$A$43/($C$4:$C$43=$D$3)/(COUNTIF($D$3:D3,$A$4:$A$43)=0),
RANDBETWEEN(1,SUMPRODUCT((COUNTIF($D$3:D3,$A$4:$A$43)=0)*($C$4:$C$43=$D$3))))

Sao chép công thức xuống. Khi hết dữ liệu nguồn sẽ báo lỗi #NUM!

Thay đổi giá trị trong D3 để kiểm tra công thức.

.
 
Trong D4, bạn thử dùng công thức sau:

Mã:
=AGGREGATE(14,6,$A$4:$A$43/($C$4:$C$43=$D$3)/(COUNTIF($D$3:D3,$A$4:$A$43)=0),
RANDBETWEEN(1,SUMPRODUCT((COUNTIF($D$3:D3,$A$4:$A$43)=0)*($C$4:$C$43=$D$3))))

Sao chép công thức xuống. Khi hết dữ liệu nguồn sẽ báo lỗi #NUM!

Thay đổi giá trị trong D3 để kiểm tra công thức.

.
Thanks bác. Bác cho em hỏi thêm chút. Nếu muốn tạo 1 nút để mỗi khi ấn vào đấy ô công thức tự chạy lại thì có được không ạ?
 
Thanks bác. Bác cho em hỏi thêm chút. Nếu muốn tạo 1 nút để mỗi khi ấn vào đấy ô công thức tự chạy lại thì có được không ạ?
Microsoft hiểu tâm ý của bạn nên tạo sẵn cho nút F9 trên bàn phím rồi đó bạn
 
Nếu bạn có MS365 dùng Filter sẽ siêu gọn.
 
Microsoft hiểu tâm ý của bạn nên tạo sẵn cho nút F9 trên bàn phím rồi đó bạn
Thế có cách nào để công thức không tự chạy không ạ? Em thêm nội dung hay chuyển sheet là công thức đấy lại tự chạy. ví dụ e muốn chỉ khi nào ấn F9 công thức đấy mới chạy thôi. còn lại thì giữ nguyên kết quả
 
Thế có cách nào để công thức không tự chạy không ạ? Em thêm nội dung hay chuyển sheet là công thức đấy lại tự chạy. ví dụ e muốn chỉ khi nào ấn F9 công thức đấy mới chạy thôi. còn lại thì giữ nguyên kết quả
Có nhưng đụng tới lập trình rồi, bạn nhờ lại bác ở bài #2 đi nhé
 
Bạn thử phương án bằng VBA nhé.
Kết quả sẽ chạy khi bạn thay đổi nội dung tại ô D3:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr&, i&, k&, r&, c&, rng
Dim st As String, s1 As String, s
If Target.Address(0, 0) <> "D3" Then Exit Sub
lr = Cells(Rows.Count, "A").End(xlUp).Row
rng = Range("A4:C" & lr).Value
With WorksheetFunction
    c = .CountIf(Range("C4:C" & lr), Range("D3"))
    If c = 0 Then Exit Sub
    Randomize
    r = Int(Rnd * c) + 1
    st = "-"
        For i = 1 To UBound(rng)
            If UCase(rng(i, 3)) = UCase(Range("D3").Value) Then
                st = st & i & "-"
            End If
        Next
        s = Split(st, "-")
        Cells(4, 4).Value = s(r)
        For i = 5 To 8
            Do
                r = Int(Rnd * c) + 1
                s1 = s(r)
            Loop Until .CountIf(Range("D4", Cells(i, 4)), s1) = 0
            Cells(i, 4).Value = s1
        Next
End With
End Sub
 

File đính kèm

  • BookH.xlsm
    19.8 KB · Đọc: 18
Cảm ơn sự hỗ trợ của các bác.
Nhờ các bác hỗ trợ thêm. Có cách nào tự động đổi vị trí các ô không ạ?
Ví dụ như cột B thứ tự đang là: Câu 1, Câu 2, Câu 3,.....Câu 40. Có thể tự chuyển thành Câu 9, Câu 1, Câu 5,.... mà không theo quy luật nào.
Em cảm ơn ạ.
 
Web KT
Back
Top Bottom