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

Kako ustvariti vse kombinacije 3 ali več stolpcev v Excelu?

Recimo, da imam 3 stolpce podatkov, zdaj želim ustvariti ali navesti vse kombinacije podatkov v teh 3 stolpcih, kot je prikazano spodaj. Ali imate kakšne dobre metode za reševanje te naloge v Excelu?

Z uporabo formule ustvarite vse kombinacije na podlagi 3 stolpcev podatkov

Z uporabo kode VBA ustvarite vse kombinacije na podlagi 3 ali več stolpcev podatkov

Z izjemno funkcijo ustvarite vse kombinacije na podlagi 3 ali več stolpcev podatkov


Z uporabo formule ustvarite vse kombinacije na podlagi 3 stolpcev podatkov

Naslednja dolga formula vam lahko pomaga našteti vse kombinacije treh stolpcev, naredite tako:

1. Kliknite celico, kamor želite izpisati rezultat, nato pa vanjo kopirajte in prilepite spodnjo formulo:

=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),"")

Opombe: V tej formuli: A2: A4, B2: B6, C2: C5 so obsegi podatkov, ki jih želite uporabiti.

2. Nato povlecite ročico za polnjenje navzdol do celic, dokler se ne prikažejo prazne celice, kar pomeni, da so bile navedene vse kombinacije 3 stolpcev, glejte posnetek zaslona:


Z uporabo kode VBA ustvarite vse kombinacije na podlagi 3 ali več stolpcev podatkov

Zgornjo dolgo formulo je nekoliko težko uporabiti, če je treba podatke uporabljati več stolpcev, jo bo težko spremeniti. Tukaj bom predstavil kodo VBA za hitro obravnavo.

1. Držite tipko ALT + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.

2. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v okno modula.

Koda VBA: ustvari vse kombinacije 3 ali več stolpcev

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

Opombe: V zgornji kodi, A2: A4, B2: B6, C2: C5 so obseg podatkov, ki ga želite uporabiti, E2 je izhodna celica, v kateri želite poiskati rezultate. Če želite dobiti vse kombinacije več stolpcev, spremenite in dodajte druge parametre v kodo, kot želite.

3. Nato pritisnite F5 za zagon te kode in vse kombinacije treh ali več stolpcev bodo ustvarjene hkrati, glejte posnetek zaslona:


Z izjemno funkcijo ustvarite vse kombinacije na podlagi 3 ali več stolpcev podatkov

Če imate Kutools za Excel, s svojo močno Seznam vseh kombinacij lahko hitro in enostavno navedete vse kombinacije več stolpcev.

nasveti:Če želite uporabiti to Seznam vseh kombinacij funkcijo, najprej morate prenesti Kutools za Excelin nato funkcijo hitro in enostavno uporabite.

Po namestitvi Kutools za Excel, naredite tako:

1. Kliknite Kutools > Vstavi > Seznam vseh kombinacij, glej posnetek zaslona:

2. v Seznam vseh kombinacij v pogovornem oknu določite podatke stolpcev in ločila za seznam kombinacij, kot je prikazano na sliki spodaj:

3. Po nastavitvi podatkov in ločila nato kliknite Ok gumb, v naslednjem pozivnem polju izberite celico, da poiščete rezultat, glejte posnetek zaslona:

4. In nato kliknite OK , so vse kombinacije ustvarjene takoj, kot je prikazano spodaj:

Kliknite za prenos Kutools za Excel in brezplačno preskusno različico zdaj!


  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce in vodenje podatkov; Vsebina razdeljenih celic; Združite podvojene vrstice in vsoto / povprečje... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Priljubljene in hitro vstavite formule, Obsegi, grafikoni in slike; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Razvrščanje vrtilne tabele po številka tedna, dan v tednu in še več ... Prikaži odklenjene, zaklenjene celice po različnih barvah; Označite celice s formulo / imenom...
zavihek kte 201905
  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize
Komentarji (17)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Za ustvarjanje katere koli naključne kombinacije lahko uporabimo
=INDEX($A$2:$A$4,RANDBETWEEN(1,3))&"-"&INDEX($B$2:$B$6,RANDBETWEEN(1,5))&"-"&INDEX($C$2:$C$5,RANDBETWEEN(1,4))
Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala za delitev te objave. Najlepša hvala @Balaji za njegovo/njeno formulo
Ta komentar je moderator na spletnem mestu minimiziral
NE MOREM SE DOVOLJ HVALA! REŠEL MI JE TOLIKO ČASA!
Ta komentar je moderator na spletnem mestu minimiziral
KAKO narediti spodnjo formulo za 5 stolpcev? Poskuša ugotoviti, vendar daje napako
=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),"")
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, Nikhil, za pridobitev vseh kombinacij iz 5 stolpcev vam lahko pomaga spodnja koda VBA. Prosimo, spremenite reference celic na svoje podatke.
Podseznam Vse kombinacije()
'Posodobitev Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 kot obseg
Dim xRg As Range
Dim xStr kot niz
Dim xFN1, xFN2, xFN3, xFN4, xFN5 kot celo število
Dim xSV1, xSV2, xSV3, xSV4, xSV5 kot niz
Nastavite xDRg1 = Obseg("A2:A7") 'Podatki prvega stolpca
Nastavite xDRg2 = Obseg("B2:B7") 'Podatki drugega stolpca
Nastavite xDRg3 = Obseg("C2:C7") 'Podatki tretjega stolpca
Nastavite xDRg4 = Obseg("D2:D7") 'Podatki četrtega stolpca
Nastavite xDRg5 = Obseg("E2:E7") 'Podatki petega stolpca
xStr = "-" 'Ločilo
Nastavite xRg = Range("H2") 'Izhodna celica
Za xFN1 = 1 Do xDRg1.Count
xSV1 = xDRg1.Postavka(xFN1).Besedilo
Za xFN2 = 1 Do xDRg2.Count
xSV2 = xDRg2.Postavka(xFN2).Besedilo
Za xFN3 = 1 Do xDRg3.Count
xSV3 = xDRg3.Postavka(xFN3).Besedilo
Za xFN4 = 1 Do xDRg4.Count
xSV4 = xDRg4.Postavka(xFN4).Besedilo
Za xFN5 = 1 Do xDRg5.Count
xSV5 = xDRg5.Postavka(xFN5).Besedilo
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5
Nastavi xRg = xRg.Offset(1, 0)
Naslednji
Naslednji
Naslednji
Naslednji
Naslednji
Konec SubProsim, poskusite, upam, da vam lahko pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, skyyang, spremenil sem kodo za 7 zvitkov, vendar glede na to, da ima Excel samo 1,048,576 vrstic, koda VBA ne more dati vseh kombinacij. Ali imate idejo, kako lahko nadaljujem z drugimi stolpci? Mislim, da je treba to kodo - Set xRg = xRg.Offset(1, 0) spremeniti
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, skyyang, spremenil sem kodo za 7 zvitkov, a če vidim, da ima Excel samo 1,048,576 vrstic, koda VBA ne more dati vseh kombinacij.
Ali imate idejo, kako lahko nadaljujem z drugimi stolpci?
Mislim, da je ta koda - Set xRg = xRg.Offset(1, 0)
potrebno spremeniti 
Ta komentar je moderator na spletnem mestu minimiziral
=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),"")
Ta komentar je moderator na spletnem mestu minimiziral
potrebujem to formulo za 4 stolpce
Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala. Točno to kar rabim :-)))
Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala za to kodo. Spremenil sem kodo za količino stolpca, ki ga potrebujem (25). hvala,
Ta komentar je moderator na spletnem mestu minimiziral
HiIn VBA kodo sem uporabil štiri stolpce in obseg stolpca je E2:E75, B2:B267, C2:C195 & D2:D267. Izhodni razpon je J2. V tem primeru je izhodni rezultat presegel omejitev vrstice. Prosim pomagajte odpraviti napako
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni. To je koda za 9 stolpcev :)
Podseznam Vse kombinacije()
'Posodobitev Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9 kot razpon
Dim xRg As Range
Dim xStr kot niz
Dim xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9 kot celo število
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9 kot niz
Nastavite xDRg1 = Obseg("A2:A3") 'Podatki prvega stolpca
Nastavite xDRg2 = Obseg("B2:B3") 'Podatki drugega stolpca
Nastavite xDRg3 = Obseg("C2:C10") 'Podatki tretjega stolpca
Nastavite xDRg4 = Obseg("D2:D2") 'Podatki tretjega stolpca
Nastavite xDRg5 = Obseg("E2:E3") 'Podatki tretjega stolpca
Nastavite xDRg6 = Obseg("F2:F3") 'Podatki tretjega stolpca
Nastavite xDRg7 = Obseg("G2:G4") 'Podatki tretjega stolpca
Nastavite xDRg8 = Obseg("H2:H3") 'Podatki tretjega stolpca
Nastavite xDRg9 = Obseg("I2:I3") 'Podatki tretjega stolpca
xStr = "-" 'Ločilo
Nastavite xRg = Range("K2") 'Izhodna celica
Za xFN1 = 1 Do xDRg1.Count
xSV1 = xDRg1.Postavka(xFN1).Besedilo
Za xFN2 = 1 Do xDRg2.Count
xSV2 = xDRg2.Postavka(xFN2).Besedilo
Za xFN3 = 1 Do xDRg3.Count
xSV3 = xDRg3.Postavka(xFN3).Besedilo
Za xFN4 = 1 Do xDRg4.Count
xSV4 = xDRg4.Postavka(xFN4).Besedilo
Za xFN5 = 1 Do xDRg5.Count
xSV5 = xDRg5.Postavka(xFN5).Besedilo
Za xFN6 = 1 Do xDRg6.Count
xSV6 = xDRg6.Postavka(xFN6).Besedilo
Za xFN7 = 1 Do xDRg7.Count
xSV7 = xDRg7.Postavka(xFN7).Besedilo
Za xFN8 = 1 Do xDRg8.Count
xSV8 = xDRg8.Postavka(xFN8).Besedilo
Za xFN9 = 1 Do xDRg9.Count
xSV9 = xDRg9.Postavka(xFN9).Besedilo
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9
Nastavi xRg = xRg.Offset(1, 0)
Naslednji
Naslednji
Naslednji
Naslednji
Naslednji
Naslednji
Naslednji
Naslednji
Naslednji
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
조합의 나열을 "단어-단어-단어" 순으로 나열하는 법은 이해했습니다.
그런데 "단어"가 아니라 숫자일 경우,
즉 숫자의 조합을 단순 나열이 아닌 덧셈이나 곱셈으로 적용하합을 단순 나열이 아닌 덧셈이나 곱셈으로 적용하려면 얌닌 나열이 아닌 덧셈이나 곱셈으로 적용하려면 얌

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

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

-1 로 엑셀에 표기될 수 있게 말입니다.
Ta komentar je moderator na spletnem mestu minimiziral
Bonjour, comment faire pour que chaque valeurs soient placées dans une colonne differente en non séparées par un tiret ?
Ta komentar je moderator na spletnem mestu minimiziral
Esse código me ajudou bastante e combinou um item de cada coluna entre elas. Mas também preciso combinar dois itens de cada coluna, sem repetição. Alguém poderia me ajudar nisso?
Ta komentar je moderator na spletnem mestu minimiziral
Esse código me ajudou bastante e combinou um item de cada coluna entre elas. Mas também preciso combinar dois itens de cada coluna, sem repetição. Alguém poderia me ajudar nisso?
Tu še ni objavljenih komentarjev
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL