Nhờ chỉ dùng công thức liệt kê theo kiểu tổ hợp (4 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hungfedora

Thành viên mới
Tham gia
7/3/12
Bài viết
8
Được thích
0
mình nhập vào cột A những con số và công thức sao cho ra kết quả như cột C.. theo kiểu liệt kê tổ hợp ạ. ai giúp em với. tks!
 

File đính kèm

Mình đã xem file nhưng thực sự chưa hiểu ý bạn muốn nhận kết quả thế nào vì không hề có qui tắc nào cả?
 
Mình đã xem file nhưng thực sự chưa hiểu ý bạn muốn nhận kết quả thế nào vì không hề có qui tắc nào cả?
Giống xếp lịch thi đấu vòng tròn trong bóng đá vậy đó. Ví dụ ta có 4 đội A, B, C, D ta sẽ ra được tổ hợp các cặp đấu là A-B, A-C, A-D, B-C, B-D và C-D. Tổng cộng có 6 cặp
 
Nó là liệt kê tổ hợp chập 2 của N phần tử nào đó thì phải.
 
Chắc không có công thức đâu. Phải dùng code thôi
 

File đính kèm

Cũng một con bò hơi mộng chút. Ý tưởng đầu tiên, không ham thêm nữa.
1. Dữ liệu từ B2, không có ô trống ở giữa. Giả thiết dữ liệu không quá B20. Nếu hơn thì tự sửa vùng trong công thức.
2. Cột phụ A. A1 = 1. Công thức cho A3
Mã:
=COUNTA(B3:$B$19)+A2
Copy xuống dưới.
3. Công thức cho D2
Mã:
=VLOOKUP(ROWS($1:1),A$2:B$20,2)&"-"&INDEX(B$2:B$20,ROWS($1:1)-VLOOKUP(ROWS($1:1),A$2:A$20,1)+MATCH(ROWS($1:1),A$2:A$20)+1)
Copy xuống dưới.
 
Gửi nhầm lần 2
 
Mình chỉ cần xử lý liệt kê ra 2 số cặp như trên. nếu gỗ 10 cặp số thì liệt kê ra 45 cặp
Cho bạn thêm cách không dùng cột phụ, nếu có thay đổi bạn tự sửa vùng trong công thức, công thức yêu cầu phải bấm Ctrl+Shift+Enter!!!
Và thêm cách dùng VBA cho n phần tử chập k (k là B1).
 

File đính kèm

File đính kèm

Cho bạn thêm cách không dùng cột phụ, nếu có thay đổi bạn tự sửa vùng trong công thức, công thức yêu cầu phải bấm Ctrl+Shift+Enter!!!
.
Với cấu trúc dữ liệu đầu vào như tập tin thì công thức có thể ngắn hơn và kết thúc bằng Enter.
Mã:
=IF(ROWS($1:1)>COMBIN(ROW(A$15)-1,2),"",INDEX(A$2:A$15,COUNTIF(C$1:C1,"*-"&A$15)+1)&"-"&INDEX(A$2:A$15,MOD(ROW(A1)-1+COUNTIF(C$1:C1,"*-"&A$15)*(COUNTIF(C$1:C1,"*-"&A$15)+1)/2,ROWS($A$2:$A$15)-1)+2))
 
Với cấu trúc dữ liệu đầu vào như tập tin thì công thức có thể ngắn hơn và kết thúc bằng Enter.
Mã:
=IF(ROWS($1:1)>COMBIN(ROW(A$15)-1,2),"",INDEX(A$2:A$15,COUNTIF(C$1:C1,"*-"&A$15)+1)&"-"&INDEX(A$2:A$15,MOD(ROW(A1)-1+COUNTIF(C$1:C1,"*-"&A$15)*(COUNTIF(C$1:C1,"*-"&A$15)+1)/2,ROWS($A$2:$A$15)-1)+2))
Đếm giá trị cuối để xác định vòng lập rất hay, chắc phải tốn nhiều công sức mới nghỉ ra cách nầy
Giả định giá trị cuối không trùng
Mã:
=IFERROR(OFFSET(A$2,COUNTIF(C$1:C1,"*-"&A$15),)&"-"&INDEX($A$2:$A$15,ROW(A2)-(ROWS($A$2:$A$15)*2-3-COUNTIF(C$1:C1,"*-"&A$15))*COUNTIF(C$1:C1,"*-"&A$15)/2,),"")
 

File đính kèm

Web KT

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

Trả lời
42
Đọc
17K
Back
Top Bottom