Ghép nhóm trong excel

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

kien3688

Thành viên mới
Tham gia
22/10/23
Bài viết
2
Được thích
1
Nhờ các cao nhân chỉ giáo giúp em với ạ.
Công ty em có 6 nhóm A,B,C,D,E,F. Giờ e muốn ghép kết quả 4 nhóm làm 1 đội không trùng lặp nhau mà kéo công thức trong excel như thế nào cho nhanh ạ.
VD: A,B,C,D
A,B,D,E
A,B,D,F
B,C,D,E.....
Nhờ an chị hướng dẫn cụ thể để lần sau e tiếp tục sử dụng
Cám ơn anh chị!
 
Nhờ các cao nhân chỉ giáo giúp em với ạ.
Công ty em có 6 nhóm A,B,C,D,E,F. Giờ e muốn ghép kết quả 4 nhóm làm 1 đội không trùng lặp nhau mà kéo công thức trong excel như thế nào cho nhanh ạ.
VD: A,B,C,D
A,B,D,E
A,B,D,F
B,C,D,E.....
Nhờ an chị hướng dẫn cụ thể để lần sau e tiếp tục sử dụng
Cám ơn anh chị!
Dùng cột phụ, xem công thức trong file
Lưu ý, theo nội qui của diễn đàn không nên đăng 1 bài nhiều lần sẽ làm hao tổn tài nguyên của diễn đàn, ngoài ra không nên dùng từ vay mượn từ truyện kiếm hiệp Trung Quốc
 

File đính kèm

Nhờ các cao nhân chỉ giáo giúp em với ạ.
Công ty em có 6 nhóm A,B,C,D,E,F. Giờ e muốn ghép kết quả 4 nhóm làm 1 đội không trùng lặp nhau mà kéo công thức trong excel như thế nào cho nhanh ạ.
VD: A,B,C,D
A,B,D,E
A,B,D,F
B,C,D,E.....
Nhờ an chị hướng dẫn cụ thể để lần sau e tiếp tục sử dụng
Cám ơn anh chị!
Bài này bạn có thế dùng E365 hoặc Power Query
 
Chỉnh hợp (combination) và tổ hợp (permutation) là bài toán kinh điển của toán số.
Hiện nay ngôn ngữ có sắn hàm thư viện làm việc này là Python.
Rắt tiếc rằng tuy Excel rất thích toán số và thống kê nhưng chỉnh hợp thì thuộc về xác suất cho nên việc hỗ trợ bài toán này không dễ lắm.

Giải thuật:
Vì chỉ có 6 số cho nên viết code VBA không khó lắm. Cứ cho vòng lặp chạy hết các tổ hợp.
Nếu muốn cải tiến thì có mẹo rằng 4 trên 6 có nghĩa là loại 2. Bài toán loại vì chỉ có 2 cho nên hiệu quả hơn bài toán gộp 4.
 
Chỉnh hợp (combination) và tổ hợp (permutation) là bài toán kinh điển của toán số.
Hiện nay ngôn ngữ có sắn hàm thư viện làm việc này là Python.
Rắt tiếc rằng tuy Excel rất thích toán số và thống kê nhưng chỉnh hợp thì thuộc về xác suất cho nên việc hỗ trợ bài toán này không dễ lắm.

Giải thuật:
Vì chỉ có 6 số cho nên viết code VBA không khó lắm. Cứ cho vòng lặp chạy hết các tổ hợp.
Nếu muốn cải tiến thì có mẹo rằng 4 trên 6 có nghĩa là loại 2. Bài toán loại vì chỉ có 2 cho nên hiệu quả hơn bài toán gộp 4.
Sáng kiến tuyệt vời :)
 
Lần chỉnh sửa cuối:
Chỉnh hợp (combination) và tổ hợp (permutation) là bài toán kinh điển của toán số.
Hiện nay ngôn ngữ có sắn hàm thư viện làm việc này là Python.
Rắt tiếc rằng tuy Excel rất thích toán số và thống kê nhưng chỉnh hợp thì thuộc về xác suất cho nên việc hỗ trợ bài toán này không dễ lắm.

Giải thuật:
Vì chỉ có 6 số cho nên viết code VBA không khó lắm. Cứ cho vòng lặp chạy hết các tổ hợp.
Nếu muốn cải tiến thì có mẹo rằng 4 trên 6 có nghĩa là loại 2. Bài toán loại vì chỉ có 2 cho nên hiệu quả hơn bài toán gộp 4.
Với gợi ý của anh, em làm được như sau:
Screenshot_20231024_131255_com.microsoft.office.excel.jpg
Với
Mã:
A2=DEC2HEX(IFERROR(IF(MOD(HEX2DEC(A1)+17;16)=0;HEX2DEC(A1)+INT((HEX2DEC(A1)+17)/16)+1;HEX2DEC(A1)+1);171))
B2=SUBSTITUTE(SUBSTITUTE("ABCDEF";LEFT(A2);"");RIGHT(A2);"")
Tuy nhiên, vì ở cột A ô dưới phụ thuộc vào ô trên, nên chỉ đúng trong trường hợp chỉ có A,B,C,D... thôi. Không có ý nghĩa trong thực tế lắm.
 
Dùng cột phụ, xem công thức trong file
Lưu ý, theo nội qui của diễn đàn không nên đăng 1 bài nhiều lần sẽ làm hao tổn tài nguyên của diễn đàn, ngoài ra không nên dùng từ vay mượn từ truyện kiếm hiệp Trung Quốc
Cám ơn anh đẫ nhắc nhở!
 
Sub t()
Const LST = "ABCDEF"
i = 0
For i1 = 1 To 6
comb1 = LST
Mid(comb1, i1, 1) = " " ' loại thằng này
For i2 = i1 + 1 To 6
comb2 = comb1
Mid(comb2, i2, 1) = " " ' loại thêm thằng này
i = i + 1
Cells(i, "H") = Replace(comb2, " ", "")
Next i2
Next
End Sub

Tuy nhiên, kết quả ra bị sắp xếp ngược. Nếu muốn sắp xếp đúng thì phải đệ quy, tôi lười viết quá.
 
Hehe, chào mừng bác đến với thế giới code. --=0--=0--=0
Thế giới code là gì? Thiệt ra tôi lười viết code lắm, bình thường chỉ thảy cái system analysis ra cho tụi developer chúng viết. Gặp đồ án dính líu hướng đối tượng thì tôi thiết kế mấy cái class mẫu, nhưng cũng ít khi nhúng tay vào code.
Nhưng ở diễn đàn này, ít người có khả năng hiểu cái này cho nên thỉnh thoảng tôi code để minh họa phân tích của mình.

Vả lại, vấn đề ở diễn đàn này thường giông giống nhau, chỉ là nhờ viết code từ a đến z. Người ở đây cũng siêng viết code giùm cho nên cạnh tranh với họ mần chi. Đường nào cũng đến La mã, giải thuật xoàng xoàng đủ rồi, bận tâm làm gì.
Lâu lâu mới có một cái cần đọng não.
 
Góp vui . . .
Mã:
Sub ABC()
  Dim k&, j&, c&, chr$, t$, res$
  Const str$ = "ABCDEF"
  For j = 6 To 2 Step -1
    chr = Mid(str, j, 1)
    For c = j - 1 To 1 Step -1
      t = str
      Mid(t, c, 1) = chr
      k = k + 1
      Cells(k + 1, "I") = Replace(t, chr, "")
    Next c
  Next j
End Sub
 
Web KT

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

Back
Top Bottom