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

Hur listar eller genererar jag alla möjliga kombinationer i Excel?

Låt oss säga, jag har följande två datakolumner, och nu vill jag skapa en lista över alla möjliga kombinationer baserat på de två värdelistorna som vänster skärmdump visas. Kanske kan du lista alla kombinationer en efter en om det finns få värden, men om det finns flera kolumner med flera värden som behövs för att lista de möjliga kombinationerna, här är några snabba tricks som kan hjälpa dig att hantera detta problem i Excel .

Lista eller generera alla möjliga kombinationer från två listor med formel

Lista eller generera alla möjliga kombinationer från tre eller flera listor med VBA-kod

Lista eller generera alla möjliga kombinationer från flera listor med en kraftfull funktion


Lista eller generera alla möjliga kombinationer från två listor med formel

Följande långa formel kan hjälpa dig att snabbt lista alla möjliga kombinationer av två listvärden, gör så här:

1. Ange eller kopiera formeln nedan till en tom cell, i det här fallet skriver jag in den i cell D2 och trycker sedan på ange nyckel för att få resultatet, se skärmdump:

=IF(ROW()-ROW($D$2)+1>COUNTA($A$2:$A$5)*COUNTA($B$2:$B$4),"",INDEX($A$2:$A$5,INT((ROW()-ROW($D$2))/COUNTA($B$2:$B$4)+1))&"-"&INDEX($B$2:$B$4,MOD(ROW()-ROW($D$2),COUNTA($B$2:$B$4))+1))

Anmärkningar: I ovanstående formel, $ A $ 2: $ A $ 5 är intervallet för de första kolumnvärdena och $ B $ 2: $ B $ 4 är intervallet för de andra listvärdena där du vill lista alla deras möjliga kombinationer, $ D $ 2 är cellen som du sätter formeln, kan du ändra cellreferenserna efter ditt behov.

2. Välj sedan cell D2 och dra påfyllningshanteringen ner till cellerna tills du får tomma celler, och alla möjliga kombinationer har listats baserat på de två listvärdena. Se skärmdump:


Lista eller generera alla möjliga kombinationer från tre eller flera listor med VBA-kod

Kanske är ovanstående formel något svår för dig att tillämpa. Om det finns flera kolumndata kommer det att vara besvärligt att ändra. Här kommer jag att införa en VBA-kod för att hantera den snabbt.

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulerna Fönster.

VBA-kod: Generera alla kombinationer av tre eller flera kolumner

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:A5")  'First column data
Set xDRg2 = Range("B2:B4")  'Second column data
Set xDRg3 = Range("C2:C4")  '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
Anmärkningar: I ovanstående kod, A2: A5, B2: B4, C2: C4 är det dataområde som du vill använda, E2 är den utdatacell som du vill hitta resultaten. Om du vill få alla kombinationer av fler kolumner, ändra och lägg till andra parametrar i koden efter behov.

3. Tryck sedan på F5 nyckel för att köra den här koden, och alla kombinationer av de tre kolumnerna genereras på en gång, se skärmdump:


Lista eller generera alla möjliga kombinationer från flera listor med en kraftfull funktion

Om det finns flera listor måste värden listas, de möjliga kombinationerna, kanske det är svårt för dig att ändra koden. Här kan jag rekommendera ett kraftfullt verktyg - Kutools för Excel, den innehåller en praktisk funktion Lista alla kombinationer som snabbt kan lista alla möjliga kombinationer baserat på givna datalistor.

tips:Att tillämpa detta Lista alla kombinationer funktionen, först bör du ladda ner Kutools för Excel, och använd sedan funktionen snabbt och enkelt.

När du har installerat Kutools för Excel, gör så här:

1. Klicka Kutools > Insert > Lista alla kombinationer, se skärmdump:

2. I Lista alla kombinationer dialogrutan, gör åtgärderna som visas nedan:

3. Sedan har alla angivna värden och separatorer listats i dialogrutan, se skärmdump:

4.Och klicka sedan på Ok -knappen och en snabbruta dyker upp för att påminna dig om att du väljer en cell för att mata ut resultatet, se skärmdump:

5. Klicka OKhar alla möjliga kombinationer baserade på de angivna listorna genererats i kalkylbladet enligt följande skärmdump:

Klicka för att ladda ner Kutools för Excel nu!


Fler relativa artiklar:

  • Skapa alla kombinationer av 3 eller flera kolumner
  • Om jag antar att jag har 3 kolumner med data, nu vill jag generera eller lista alla kombinationer av data i dessa 3 kolumner som visas nedan. Har du några bra metoder för att lösa denna uppgift i Excel?
  • Hitta alla kombinationer som motsvarar en given summa
  • Till exempel har jag följande lista med siffror, och nu vill jag veta vilken kombination av siffror i listan som sammanfattar upp till 480, i följande skärmdump som visas kan du se att det finns fem grupper av möjliga kombinationer som lägger till lika till 480, till exempel 300 + 60 + 120, 300 + 60 + 40 + 80, etc. Den här artikeln kommer jag att prata om några metoder för att hitta vilka celler som summerar till ett specifikt värde i Excel.
  • Skapa eller lista upp alla möjliga permutationer
  • Till exempel har jag tre tecken XYZ, nu vill jag lista alla möjliga permutationer baserat på dessa tre tecken för att få sex olika resultat som detta: XYZ, XZY, YXZ, YZX, ZXY och ZYX. I Excel, hur kan du snabbt generera eller lista alla permutationer baserat på olika antal tecken?
  • Skapa en lista över alla möjliga kombinationer av fyra siffror
  • I vissa fall kan vi behöva generera en lista över alla möjliga fyra siffror kombinationer av nummer 4 till 0, vilket innebär att generera en lista med 9, 0000, 0001… 0002. För att snabbt lösa listuppgiften i Excel introducerar jag några knep för dig.

 


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten

 

Sortera kommentarer efter
Kommentarer (42)
Klassad 5 av 5 · 1 betyg
Denna kommentar minimerades av moderatoren på webbplatsen
Detta är en lysande formel! Jag har ingen aning om hur det fungerar, men jag ändrar bara kolumnen A och B för att matcha hur långa mina listor är och har min utdata i D1.
Denna kommentar minimerades av moderatoren på webbplatsen
exempel : min värdelista är 1,2,3,4,5,6......80 , jag vill att kutool ska visa alla kombinationer av en uppsättning av 2 nummer, exempel: 1-2 , 1-3 , 1-4, 1-5, ...................79-80. är detta möjligt med KUTOOL?
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att få den här formeln att fungera där den producerar de olika kombinationerna fortfarande separerade i två separata kolumner, men bredvid varandra?
Denna kommentar minimerades av moderatoren på webbplatsen
Har du haft tur med att komma på hur man gör detta? Jag försöker göra exakt samma sak och har alla mina sannolikheter i 2 separata kolumner i excel.
Denna kommentar minimerades av moderatoren på webbplatsen
Har du haft tur med detta än? Jag försöker göra samma sak och ha alla möjliga kombinationer bredvid varandra i två separata kolumner.
Denna kommentar minimerades av moderatoren på webbplatsen
Kan jag få formeln för alla kombinationer av en 5*5 matris (5 rader och 5 kolumner) Jag försökte men kunde inte få snälla hjälp mig.......
Denna kommentar minimerades av moderatoren på webbplatsen
MYCKET HJÄLPLIG. Jag kan nu skapa kombinationer väldigt enkelt.
Denna kommentar minimerades av moderatoren på webbplatsen
Hur kunde du använda KuTools, eller till och med en formel, om du ville ha alla permutationer i månadshuvudet. Jan, Jan och Feb, Jan och Mar, Jan och Mar, Jan och Feb och Mar, etc etc
Denna kommentar minimerades av moderatoren på webbplatsen
någon som vet hur man ändrar detta för att återspegla 6 kolumner med data, snarare än bara två?
Denna kommentar minimerades av moderatoren på webbplatsen
letar efter samma sak. någon vet?
Denna kommentar minimerades av moderatoren på webbplatsen
någon som vet hur man ändrar detta för att återspegla 6 kolumner med data?
Denna kommentar minimerades av moderatoren på webbplatsen
För fler kolumner:
Den första delen av formuleringen måste modifieras för att multiplicera alla möjligheter, till exempel skulle detta vara för 6 kolumner
COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9)
så du lägger till
*COUNTA(YourRangeHere)
för varje kolumn
Den andra delen av formeln måste också ändras för varje kolumn så här:
INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1)
så du lägger till
&INDEX(YourRangeHere,MOD(ROW()-ROW($I$2),COUNTA(YourRangeHere))+1)

Så sätt ihop dem alla och du får det här exemplet för 6 kolumner:

=IF(ROW()-ROW($I$2)+1>COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9),"",INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1))

Där du skulle klistra in denna formel i $I$2 och det skulle vara att titta på $A$2:$A$9 $B$2:$B$9 $C$2:$C$9 ... upp till $F$2:$F$9
Denna kommentar minimerades av moderatoren på webbplatsen
det här fungerar inte :( mer komplicerat än så här
Denna kommentar minimerades av moderatoren på webbplatsen
För fler kolumner:
Den första delen av formuleringen måste modifieras för att multiplicera alla möjligheter, till exempel skulle detta vara för 6 kolumner:

COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9)
så du lägger till
*COUNTA(YourRangeHere)
för varje kolumn

Den andra delen av formeln måste också ändras för varje kolumn så här:

INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1)

så du lägger till

&INDEX(YourRangeHere,MOD(ROW()-ROW($I$2),COUNTA(YourRangeHere))+1)

Så sätt ihop dem alla och du får det här exemplet för 6 kolumner:

=IF(ROW()-ROW($I$2)+1>COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9),"",INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1))

Där du skulle klistra in denna formel i $I$2 och det skulle vara att titta på $A$2:$A$9 $B$2:$B$9 $C$2:$C$9 ... upp till $F$2:$F$9
Denna kommentar minimerades av moderatoren på webbplatsen
det här fungerar inte :( mer komplicerat än så här
Denna kommentar minimerades av moderatoren på webbplatsen
Någon idé om hur man lägger till ett mellanslag däremellan?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Eoin,
formeln i den här artikeln kan inte hjälpa dig att lägga till ett mellanslag mellan cellvärdena, men du kan använda Kutools för Excel, med det kan du skriva vilken avgränsare som helst eftersom du vill separera det kombinerade resultatet, se skärmdump:
Denna kommentar minimerades av moderatoren på webbplatsen
Du kan lägga till ett mellanslag genom att lägga till & innan du indexerar kolumn B, precis efter den befintliga &, som så...

=IF(ROW()-ROW($D$1)+1>COUNTA($A$1:$A$4)*COUNTA($B$1:$B$3),"",INDEX($A$1:$A$4,INT((ROW()-ROW($D$1))/COUNTA($B$1:$B$3)+1))&" "&INDEX($B$1:$B$3,MOD(ROW()-ROW($D$1),COUNTA($B$1:$B$3))+1))


....eller någon annan avgränsare du vill!
Denna kommentar minimerades av moderatoren på webbplatsen
Kan KuTools sortera celler i rad på ett "enkelt kombinationssätt"?
Jag menar, om jag har dessa uppgifter:
_________________________
John Jack Paul Macy

Mark Larry

Jerry Paul Mary

Sam Jeff Peter Lucas
_________________________



Och jag vill skriva ut dem så här:
___________
John Jack

John Paul

John Macy

Jack Paul

Jack Macy

Paul Macy

Mark Larry

Jerry Paul

Jerry Marry

Paul Mary

Sam Jeff

Sam Peter

Sam Lucas

Jeff Peter

Jeff Lucas

Peter Lucas
____________


Hur kan jag göra detta? Kan KuTools göra så här?

Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Arthur,
Tyvärr, Kutools kan inte hjälpa dig att lösa det här jobbet som du sa.
Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Har någon kommit på en formel för att göra detta för 5 uppsättningar data? Jag har blivit förvånad över detta hittills.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Marco,
Kutools kan hjälpa dig att lösa ditt problem snabbt, vänligen kontrollera följande skärmdump:
Prova det, hoppas det kan hjälpa dig, tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Jag vill veta vad jag ska göra om jag vill generera fler än 1,4 miljoner kombinationer och jag överskrider gränsen för Excel-rader?
Finns det något sätt att få Kudos att fortsätta sin iteration i nästa kolumn?
Denna kommentar minimerades av moderatoren på webbplatsen
Varför fungerade inte min formel för att skapa 25 kombinationer i kolumn E (5 element från kolumn A * 5 element från kolumn B)? Medan formeln i den här artikeln fungerade i kolumn D när jag drog den för 25 celler? Skärmdump - https://prnt.sc/ihwr18
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag har en referens till formeln
=SI(FILA()-FILA($D$1)+1>(CONTARA($A$1:$A$4)*CONTARA($B$1:$B$3));"";INDICE($A$1:$A$4;RESIDUO((FILA()-FILA($D$1));COUNTA($B$1:$B$3)+1))
&INDICE($B$1:$B$3;RESIDUO(FILA()-FILA($D$1);CONTARA($B$1:$B$3))+1))
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, och om dessa kombinationer intead text är nummer, hur kan jag göra beräkningen för resultaten???? Jag försöker lägga till "+" men excel vet inte att det är symbolen .. hur löser du detta?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag använde extensionerna och fungerar fantastiskt, men nu har jag ett problem, jag måste beräkna summan,, men resultatet är en text,, jag anger en avgränsare som är symbolen +, men till slut har jag en text och är omöjligt att konvertera i en operation.
Denna kommentar minimerades av moderatoren på webbplatsen
Nästan väldigt praktiskt. Skulle vara bra om den faktiskt använde det som finns i cellen ($A$1) och inte konverterar cellen till text. Sedan kunde jag bara klistra in det jag behöver i A1 och köra det igen utan att behöva ändra något.
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att mata ut detta som en txt-fil? När du har miljontals resultat i D-kolumnen är det inte direkt praktiskt att dra i fyllningshandtaget.
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL