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

Hogyan lehet az Excelben létrehozni 3 vagy több oszlop összes kombinációját?

Tételezzük fel, hogy 3 adatoszlopom van, most szeretném létrehozni vagy felsorolni az adatok összes kombinációját ebben a 3 oszlopban, az alábbi képernyőképen. Van valami jó módszere a feladat Excelben történő megoldására?

Hozza létre az összes kombinációt 3 adatoszlop alapján egy képlet segítségével

Hozza létre az összes kombinációt három vagy több oszlop adat alapján a VBA kód használatával

Generáljon minden kombinációt 3 vagy több oszlop adat alapján egy fantasztikus funkció használatával


Hozza létre az összes kombinációt 3 adatoszlop alapján egy képlet segítségével

A következő hosszú képlet segíthet a 3 oszlop összes kombinációjának felsorolásában, kérjük, tegye a következőket:

1. Kattintson egy cellára, ahová az eredményt ki szeretné adni, majd másolja és illessze be az alábbi képletet:

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

Megjegyzések: Ebben a képletben: A2: A4, B2: B6, C2: C5 a használni kívánt adattartományok.

2. Ezután húzza lefelé a kitöltő fogantyút a cellákig, amíg üres cellák nem jelennek meg, ez azt jelenti, hogy a 3 oszlop összes kombinációja fel lett sorolva, lásd a képernyőképet:


Hozza létre az összes kombinációt három vagy több oszlop adat alapján a VBA kód használatával

A fenti hosszú képletet kissé nehéz használni, ha több oszlopot kell használni, az adatok módosítása nehézkes. Itt bemutatok egy VBA kódot, hogy gyorsan kezelhessem.

1. Tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modul ablakba.

VBA kód: Hozza létre 3 vagy több oszlop összes kombinációját

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

Megjegyzések: A fenti kódban A2: A4, B2: B6, C2: C5 a használni kívánt adattartomány, E2 az a kimeneti cella, amelyen meg akarja találni az eredményeket. Ha több oszlop összes kombinációját meg szeretné kapni, kérjük, módosítsa és más paramétereket adjon hozzá a kódhoz.

3. Ezután nyomja meg a gombot F5 kulcs a kód futtatásához, és a 3 vagy több oszlop összes kombinációja egyszerre jön létre, lásd a képernyőképet:


Generáljon minden kombinációt 3 vagy több oszlop adat alapján egy fantasztikus funkció használatával

Ha van Kutools az Excel számára, annak erős Sorolja fel az összes kombinációt funkcióval gyorsan és egyszerűen felsorolhat több oszlop összes kombinációját.

tippek:Ennek alkalmazásához Sorolja fel az összes kombinációt funkció, először is le kell töltenie a Kutools az Excel számára, majd gyorsan és egyszerűen alkalmazza a funkciót.

Telepítése után Kutools az Excel számára, kérjük, tegye a következőket:

1. Kattints Kutools > betétlap > Sorolja fel az összes kombinációt, lásd a képernyőképet:

2. Az Sorolja fel az összes kombinációt párbeszédpanelen adja meg az oszlopok adatait és elválasztóit a kombinációk felsorolásához az alábbi képernyőképen:

3. Az adatok és az elválasztó beállítása után kattintson a gombra Ok gomb, a következő prompt dobozban válasszon egy cellát az eredmény megkereséséhez, lásd a képernyőképet:

4. Ezután kattintson OK gombra, az összes kombináció azonnal elkészült, az alábbi képernyőképen:

Kattintson a Kutools for Excel és az ingyenes próbaverzió letöltéséhez!


  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése és az adatok megőrzése; Osztott cellák tartalma; Kombinálja az ismétlődő sorokat és az Összeg / Átlagot... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kedvenc és gyorsan beszúrható képletek, Tartományok, diagramok és képek; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Pivot tábla csoportosítás hét száma, a hét napja és egyebek ... Mutassa a Feloldott, Zárt cellákat különböző színekkel; Jelölje ki azokat a cellákat, amelyeknek képlete / neve van...
kte lap 201905
  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
A megjegyzések rendezése szerint
Hozzászólások (17)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
Bármilyen véletlenszerű kombináció létrehozásához használhatjuk
=INDEX($A$2:$A$4,RANDBETWEEN(1,3))&"-"&INDEX($B$2:$B$6,RANDBETWEEN(1,5))&"-"&INDEX($C$2:$C$5,RANDBETWEEN(1,4))
A weboldal moderátora ezt a megjegyzést minimalizálta
Köszönöm szépen, hogy megosztottad ezt a bejegyzést. Nagyon köszönöm @Balajinak a formuláját
A weboldal moderátora ezt a megjegyzést minimalizálta
NEM TUDOM ELÉGGÉ MEGKÖSZÖNNI! SOK IDŐT SPÓROLT MEG!
A weboldal moderátora ezt a megjegyzést minimalizálta
Hogyan kell csinálni az alábbi képletet 5 oszlophoz? Próbálom kitalálni, de hibát ad
=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),"")
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló, Nikhil! Az 5 oszlop összes kombinációjának lekéréséhez az alábbi VBA kód segíthet, kérjük, módosítsa az adatok cellahivatkozásait.
Sub ListAllCombinations()
'Frissítés által Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 tartományként
Dim xrg mint tartomány
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xFN5 egész számként
Dim xSV1, xSV2, xSV3, xSV4, xSV5 karakterláncként
Set xDRg1 = Range("A2:A7") 'Első oszlop adatai
Set xDRg2 = Range("B2:B7") 'Második oszlop adatai
Set xDRg3 = Range("C2:C7") 'A harmadik oszlop adatai
Set xDRg4 = Tartomány("D2:D7") 'Negyedik oszlop adatai
Set xDRg5 = Range("E2:E7") 'Ötödik oszlop adatai
xStr = "-" 'Elválasztó
Set xRg = Range("H2") 'Kimeneti cella
xFN1 esetén = 1 - xDRg1.Count
xSV1 = xDRg1.Elem(xFN1).Szöveg
xFN2 esetén = 1 - xDRg2.Count
xSV2 = xDRg2.Elem(xFN2).Szöveg
xFN3 esetén = 1 - xDRg3.Count
xSV3 = xDRg3.Elem(xFN3).Szöveg
xFN4 esetén = 1 - xDRg4.Count
xSV4 = xDRg4.Elem(xFN4).Szöveg
xFN5 esetén = 1 - xDRg5.Count
xSV5 = xDRg5.Elem(xFN5).Szöveg
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5
Beállítva xRg = xRg.Eltolás(1, 0)
Következő
Következő
Következő
Következő
Következő
Az alprogram vége Kérjük, próbálja meg, remélem segíthet!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Skyyang! Megváltoztattam a kódot 7 tekercsre, de látva, hogy az Excelben csak 1,048,576 1 0 sor van, a VBA-kód nem tudja megadni az összes kombinációt. Van ötlete, hogyan folytathatnám más oszlopokon? Szerintem ezt a kódot - Set xRg = xRg.Offset(XNUMX, XNUMX) módosítani kell
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló Skyyang! Megváltoztattam a kódot 7 tekercsre, de látva, hogy az Excelben csak 1,048,576 XNUMX XNUMX sor van, a VBA-kód nem tudja megadni az összes kombinációt.
Van ötleted, hogyan folytathatnám más rovatokon?
Szerintem ez a kód - Set xRg = xRg.Offset(1, 0)
változtatni kellett 
A weboldal moderátora ezt a megjegyzést minimalizálta
=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),"")
A weboldal moderátora ezt a megjegyzést minimalizálta
szükségem van erre a képletre 4 oszlophoz
A weboldal moderátora ezt a megjegyzést minimalizálta
Nagyon szépen köszönöm. Pont erre van szükségem :-)))
A weboldal moderátora ezt a megjegyzést minimalizálta
Nagyon köszönöm ezt a kódot. Módosítottam a kódot a szükséges oszlopmennyiséghez (25). Kösz,
A weboldal moderátora ezt a megjegyzést minimalizálta
HiIn VBA kód Négy oszlopot használtam, és az oszlopok tartománya E2:E75, B2:B267, C2:C195 és D2:D267. A kimeneti tartomány J2. Ebben az esetben a kimeneti eredmény meghaladja a sorkorlátot. Kérem segítsen a hiba elhárításában
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, ez egy 9 oszlopos kód :')
Sub ListAllCombinations()
'Frissítés által Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9 tartományként
Dim xRg As Range
Dim xStr As String
Mérete xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9 egész számként
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9 karakterláncként
Set xDRg1 = Range("A2:A3") 'Első oszlop adatai
Set xDRg2 = Tartomány("B2:B3") 'Második oszlop adatai
Set xDRg3 = Tartomány("C2:C10") 'A harmadik oszlop adatai
Set xDRg4 = Tartomány("D2:D2") 'A harmadik oszlop adatai
Set xDRg5 = Tartomány("E2:E3") 'A harmadik oszlop adatai
Set xDRg6 = Tartomány("F2:F3") 'A harmadik oszlop adatai
Set xDRg7 = Tartomány("G2:G4") 'A harmadik oszlop adatai
Set xDRg8 = Tartomány("H2:H3") 'A harmadik oszlop adatai
Set xDRg9 = Range("I2:I3") 'A harmadik oszlop adatai
xStr = "-" 'Elválasztó
Set xRg = Tartomány("K2") 'Kimeneti cella
xFN1 esetén = 1 - xDRg1.Count
xSV1 = xDRg1.Elem(xFN1).Szöveg
xFN2 esetén = 1 - xDRg2.Count
xSV2 = xDRg2.Elem(xFN2).Szöveg
xFN3 esetén = 1 - xDRg3.Count
xSV3 = xDRg3.Elem(xFN3).Szöveg
xFN4 esetén = 1 - xDRg4.Count
xSV4 = xDRg4.Elem(xFN4).Szöveg
xFN5 esetén = 1 - xDRg5.Count
xSV5 = xDRg5.Elem(xFN5).Szöveg
xFN6 esetén = 1 - xDRg6.Count
xSV6 = xDRg6.Elem(xFN6).Szöveg
xFN7 esetén = 1 - xDRg7.Count
xSV7 = xDRg7.Elem(xFN7).Szöveg
xFN8 esetén = 1 - xDRg8.Count
xSV8 = xDRg8.Elem(xFN8).Szöveg
xFN9 esetén = 1 - xDRg9.Count
xSV9 = xDRg9.Elem(xFN9).Szöveg
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9
Beállítva xRg = xRg.Eltolás(1, 0)
Következő
Következő
Következő
Következő
Következő
Következő
Következő
Következő
Következő
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
조합의 나열을 "단어-단어-단어" 순으로 나열하는 법은 이해했습니다.
그런데 "단어"가 아니라 숫자일 경우,
A

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

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

-1 로 엑셀에 표기될 수 있게 말입니다.
A weboldal moderátora ezt a megjegyzést minimalizálta
Bonjour, comment faire pour que chaque valeurs soient placées dans une colonne differente en non séparées par un tiret ?
A weboldal moderátora ezt a megjegyzést minimalizálta
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?
A weboldal moderátora ezt a megjegyzést minimalizálta
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?
Még senki sem írt megjegyzést
Hagyja meg észrevételeit
Feladás vendégként
×
Értékeld ezt a bejegyzést:
0   Karakterek
Javasolt helyek

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi