Note: The other languages of the website are Google-translated. Back to English

Cum se generează toate combinațiile de 3 sau mai multe coloane în Excel?

Presupunând că am 3 coloane de date, acum vreau să generez sau să listez toate combinațiile de date din aceste 3 coloane așa cum este prezentat mai jos. Aveți vreo metodă bună pentru rezolvarea acestei sarcini în Excel?

Generați toate combinațiile pe baza a 3 coloane de date utilizând o formulă

Generați toate combinațiile pe baza a 3 sau mai multe coloane de date utilizând codul VBA

Generați toate combinațiile pe baza a 3 sau mai multe coloane de date utilizând o caracteristică minunată


Generați toate combinațiile pe baza a 3 coloane de date utilizând o formulă

Următoarea formulă lungă poate ajuta la listarea tuturor combinațiilor de 3 coloane, vă rugăm să faceți acest lucru:

1. Vă rugăm să faceți clic pe o celulă în care să obțineți rezultatul, apoi copiați și lipiți formula de mai jos în ea:

=IFERROR(INDEX($A$2:$A$4,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$6)*(COUNTA($C$2:$C$5)))))+1)&"-"&INDEX($B$2:$B$6,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$5)),COUNTA($B$2:$B$6))+1)&"-"&INDEX($C$2:$C$5,MOD((ROW(1:1)-1),COUNTA($C$2:$C$5))+1),"")

notițe: În această formulă: A2: A4, B2: B6, C2: C5 sunt intervalele de date pe care doriți să le utilizați.

2. Apoi, trageți mânerul de umplere în jos până la celule până când sunt afișate celulele goale, ceea ce înseamnă că toate combinațiile celor 3 coloane au fost listate, a se vedea captura de ecran:


Generați toate combinațiile pe baza a 3 sau mai multe coloane de date utilizând codul VBA

Formula lungă de mai sus este oarecum dificilă de utilizat, dacă există mai multe coloane pe care trebuie să le folosească datele, va fi dificil de modificat. Aici, voi introduce un cod VBA pentru a face față rapid.

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în fereastra modulului.

Cod VBA: generați toate combinațiile de 3 sau mai multe coloane

Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3 As Range
Dim xRg  As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Set xDRg1 = Range("A2:A4")  'First column data
Set xDRg2 = Range("B2:B6")  'Second column data
Set xDRg3 = Range("C2:C5")  'Third column data
xStr = "-"   'Separator
Set xRg = Range("E2")  'Output cell
For xFN1 = 1 To xDRg1.Count
    xSV1 = xDRg1.Item(xFN1).Text
    For xFN2 = 1 To xDRg2.Count
        xSV2 = xDRg2.Item(xFN2).Text
      For xFN3 = 1 To xDRg3.Count
        xSV3 = xDRg3.Item(xFN3).Text
        xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3
        Set xRg = xRg.Offset(1, 0)
       Next
    Next
Next
End Sub

notițe: În codul de mai sus, A2: A4, B2: B6, C2: C5 sunt intervalul de date pe care doriți să îl utilizați, E2 este celula de ieșire pe care doriți să localizați rezultatele. Dacă doriți să obțineți toate combinațiile de mai multe coloane, vă rugăm să modificați și să adăugați alți parametri la cod, după cum doriți.

3. Apoi, apăsați F5 tasta pentru a rula acest cod și toate combinațiile celor 3 sau mai multe coloane vor fi generate simultan, vezi captura de ecran:


Generați toate combinațiile pe baza a 3 sau mai multe coloane de date utilizând o caracteristică minunată

Dacă aveţi Kutools pentru Excel, cu puterea sa Enumerați toate combinațiile caracteristică, puteți lista rapid și ușor toate combinațiile de coloane multiple.

sfaturi:Pentru a aplica acest lucru Enumerați toate combinațiile caracteristică, în primul rând, ar trebui să descărcați Kutools pentru Excel, apoi aplicați caracteristica rapid și ușor.

După instalare Kutools pentru Excel, vă rugăm să faceți acest lucru:

1. Clic Kutools > Insera > Enumerați toate combinațiile, vezi captura de ecran:

2. În Enumerați toate combinațiile caseta de dialog, specificați datele coloanelor și separatoarele pentru listarea combinațiilor după cum se arată în următoarea captură de ecran:

3. După setarea datelor și a separatorului, faceți clic pe Ok , în următoarea casetă de prompt, selectați o celulă pentru a localiza rezultatul, vedeți captura de ecran:

4. Apoi, faceți clic OK buton, toate combinațiile au fost generate imediat după cum se arată în imaginea de mai jos:

Faceți clic pentru a descărca Kutools pentru Excel și încercare gratuită acum!


  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane și păstrarea datelor; Conținut de celule divizate; Combinați rânduri duplicate și sumă / medie... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Formule favorite și inserare rapidă, Gama, Diagrame și Imagini; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Gruparea tabelului pivot după numărul săptămânii, ziua săptămânii și multe altele ... Afișați celulele deblocate, blocate prin diferite culori; Evidențiați celulele care au formulă / nume...
fila kte 201905
  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (17)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru a genera orice combinație aleatorie pe care o putem folosi
=INDEX($A$2:$A$4,RANDBETWEEN(1,3))&"-"&INDEX($B$2:$B$6,RANDBETWEEN(1,5))&"-"&INDEX($C$2:$C$5,RANDBETWEEN(1,4))
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc mult pentru împărtășirea acestei postări. Mulțumesc mult lui @Balaji pentru formula sa
Acest comentariu a fost redus la minimum de moderatorul de pe site
NU POT SA ITI MULTUMESC INDEAJUNS! MI-A ECONOMISTAT ATÂT DE MULT TIMP!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum se face mai jos formula pentru 5 coloane? Încerc să-mi dau seama, dar este o eroare de a da
=IFERROR(INDEX($A$2:$A$4,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$6)*(COUNTA($C$2:$C$5)))))+1)&"-"&INDEX($B$2:$B$6,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$5)),COUNTA($B$2:$B$6))+1)&"-"&INDEX($C$2:$C$5,MOD((ROW(1:1)-1),COUNTA($C$2:$C$5))+1),"")
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, Nikhil, Pentru a obține toate combinațiile din 5 coloane, este posibil ca codul VBA de mai jos să vă ajute, vă rugăm să schimbați referințele celulelor la datele dvs.
Sub ListAllCombinations()
'Actualizare de Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 As Range
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xFN5 ca întreg
Dim xSV1, xSV2, xSV3, xSV4, xSV5 ca șir
Setați xDRg1 = Range("A2:A7") „Date prima coloană
Setați xDRg2 = Range("B2:B7") „Date a doua coloană
Setați xDRg3 = Range("C2:C7") „Date din a treia coloană
Setați xDRg4 = Range("D2:D7") „Datele din a patra coloană
Setați xDRg5 = Range("E2:E7") „Datele din a cincea coloană
xStr = "-" 'Separator
Setați xRg = Range("H2") „Celula de ieșire
Pentru xFN1 = 1 To xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Text
Pentru xFN2 = 1 To xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
Pentru xFN3 = 1 To xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
Pentru xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
Pentru xFN5 = 1 To xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5
Set xRg = xRg.Offset(1, 0)
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Încheiați SubVă rugăm să încercați, sper că vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua Skyyang, am schimbat codul pentru 7 role, dar văzând că Excel are doar 1,048,576 de rânduri, codul VBA nu poate oferi toate combinațiile. Ai idee cum pot continua pe alte coloane? Cred că acest cod - Set xRg = xRg.Offset (1, 0) trebuie schimbat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua skyyang, am schimbat codul pentru 7 role, dar văzând Excel are doar 1,048,576 de rânduri, codul VBA nu poate da toate combinațiile.
Ai idee cum pot continua pe alte coloane?
Cred că acest cod - Set xRg = xRg.Offset(1, 0)
necesar să se schimbe 
Acest comentariu a fost redus la minimum de moderatorul de pe site
=IFERROR(INDEX($A$2:$A$5,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$3)*(COUNTA($C$2:$C$3)* (COUNTA($D$2:$D$4)* (COUNTA($E$2:$E$6)* (COUNTA($H$2:$H$6)* (COUNTA($G$2:$G$6)* (COUNTA($H$2:$H$6))))))))))+1)&"-"&INDEX($B$2:$B$3,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$3)),COUNTA($B$2:$B$3))+1)&"-" &INDEX($C$2:$C$3,MOD(INT((ROW(1:1)-1)/COUNTA($D$2:$D$4)),COUNTA($C$2:$C$3))+1)&"-" &INDEX($D$2:$D$4,MOD(INT((ROW(1:1)-1)/COUNTA($E$2:$E$6)),COUNTA($D$2:$D$4))+1)&"-" &INDEX($E$2:$E$6,MOD(INT((ROW(1:1)-1)/COUNTA($F$2:$F$6)),COUNTA($E$2:$E$6))+1)&"-" &INDEX($F$2:$F$6,MOD(INT((ROW(1:1)-1)/COUNTA($G$2:$G$6)),COUNTA($F$2:$F$6))+1)&"-" &INDEX($G$2:$G$6,MOD(INT((ROW(1:1)-1)/COUNTA($H$2:$H$6)),COUNTA($G$2:$G$6))+1)&"-"&INDEX($H$2:$H$6,MOD((ROW(1:1)-1),COUNTA($H$2:$H$6))+1),"")
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am nevoie de această formulă pentru 4 coloane
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc foarte mult. Exact ce imi trebuie :-)))
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumesc mult pentru acest cod. Am modificat codul pentru cantitatea de coloană de care am nevoie (25). Mulțumiri,
Acest comentariu a fost redus la minimum de moderatorul de pe site
HiIn codul VBA am folosit patru coloane și intervalul coloanei sunt E2:E75, B2:B267, C2:C195 și D2:D267. Intervalul de ieșire este J2. În acest caz, rezultatul a fost depășit limita de rând. Vă rugăm să ajutați la rezolvarea erorii
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Deci acesta este un cod pentru 9 coloane :')
Sub ListAllCombinations()
'Actualizare de Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9 As Range
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9 ca întreg
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9 ca șir
Setați xDRg1 = Range("A2:A3") „Date prima coloană
Setați xDRg2 = Range("B2:B3") „Date a doua coloană
Setați xDRg3 = Range("C2:C10") „Datele din a treia coloană
Setați xDRg4 = Range("D2:D2") „Date din a treia coloană
Setați xDRg5 = Range("E2:E3") „Datele din a treia coloană
Setați xDRg6 = Range("F2:F3") „Datele din a treia coloană
Setați xDRg7 = Range("G2:G4") „Datele din a treia coloană
Setați xDRg8 = Range("H2:H3") „Datele din a treia coloană
Setați xDRg9 = Range("I2:I3") „Datele din a treia coloană
xStr = "-" 'Separator
Setați xRg = Range("K2") 'Celula de ieșire
Pentru xFN1 = 1 To xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Text
Pentru xFN2 = 1 To xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
Pentru xFN3 = 1 To xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
Pentru xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
Pentru xFN5 = 1 To xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
Pentru xFN6 = 1 To xDRg6.Count
xSV6 = xDRg6.Item(xFN6).Text
Pentru xFN7 = 1 To xDRg7.Count
xSV7 = xDRg7.Item(xFN7).Text
Pentru xFN8 = 1 To xDRg8.Count
xSV8 = xDRg8.Item(xFN8).Text
Pentru xFN9 = 1 To xDRg9.Count
xSV9 = xDRg9.Item(xFN9).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9
Set xRg = xRg.Offset(1, 0)
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
조합의 나열을 "단어-단어-단어" 순으로 나열하는 법은 이해했습니다.
그런데 "단어"가 아니라 숫자일 경우,
즉 숫자의 조합을 단순 나열이 아닌 덧셈이나 곱셈으로 적용하려면 얌 하려면 얌 한 아닌 덧셈이나 곱셈으로 적용하려면 얌 하

„VBA 코드 : 3 개 또는 여러 열의 모든 조합 생성” 에서 말이죠.

„1-1-1” 로 엑셀에 결과 값이 표기되는 것이 아니고

-1 로 엑셀에 표기될 수 있게 말입니다.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bonjour, comment faire pour că fiecare valori sunt plasate într-o coloană distinctă în non séparées par un tiret ?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Esse código me ajudou bastante e combinou um item de cada coluna între elas. Mas também precis combinar doi itens de cada coluna, sem repetição. Alguém poderia me help nisso?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Esse código me ajudou bastante e combinou um item de cada coluna între elas. Mas também precis combinar doi itens de cada coluna, sem repetição. Alguém poderia me help nisso?
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL