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

Cum se listează sau se generează toate combinațiile posibile în Excel?

Să presupunem că am următoarele două coloane de date și acum vreau să generez o listă cu toate combinațiile posibile pe baza celor două liste de valori așa cum este afișat ecranul din stânga. Poate, puteți lista toate combinațiile una câte una dacă există puține valori, dar, dacă există mai multe coloane cu valori multiple necesare pentru a fi listate combinațiile posibile, iată câteva trucuri rapide care vă pot ajuta să rezolvați această problemă în Excel .

Enumerați sau generați toate combinațiile posibile din două liste cu formulă

Enumerați sau generați toate combinațiile posibile din trei sau mai multe liste cu cod VBA

Enumerați sau generați toate combinațiile posibile din mai multe liste cu o funcție puternică


Enumerați sau generați toate combinațiile posibile din două liste cu formulă

Următoarea formulă lungă vă poate ajuta să enumerați rapid toate combinațiile posibile ale celor două valori, vă rugăm să faceți următoarele:

1. Introduceți sau copiați formula de mai jos într-o celulă goală, în acest caz, o voi introduce în celula D2 și apoi apăsați Intrați cheie pentru a obține rezultatul, vezi captura de ecran:

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

notițe: În formula de mai sus, $ A $ 2: $ A $ 5 este intervalul valorilor primei coloane și $ B $ 2: $ B $ 4 este intervalul valorilor celei de-a doua liste pe care doriți să le listați toate combinațiile posibile, $ D $ 2 este celula pe care ați pus formula, puteți schimba referințele celulei la nevoia dvs.

2. Apoi selectați celula D2 și trageți mânerul de umplere în jos până la celule până obțineți celulele goale și toate combinațiile posibile au fost listate pe baza celor două valori ale listelor. Vedeți captura de ecran:


Enumerați sau generați toate combinațiile posibile din trei sau mai multe liste cu cod VBA

Poate că formula de mai sus vă este oarecum dificilă de aplicat, dacă există date cu mai multe coloane, 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 Module Fereastră.

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: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
notițe: În codul de mai sus, A2: A5, B2: B4, C2: C4 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 coloane vor fi generate simultan, vezi captura de ecran:


Enumerați sau generați toate combinațiile posibile din mai multe liste cu o funcție puternică

Dacă există mai multe liste, trebuie să fie listate valorile posibile combinații, poate este dificil pentru dvs. să modificați codul. Aici, vă pot recomanda un instrument puternic - Kutools pentru Excel, conține o caracteristică la îndemână Enumerați toate combinațiile care poate lista rapid toate combinațiile posibile pe baza listelor de date date.

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, efectuați operațiunile după cum se arată în demonstrația de mai jos:

3. Apoi toate valorile și separatoarele specificate au fost listate în caseta de dialog, consultați captura de ecran:

4. Și apoi faceți clic pe Ok și va apărea o casetă de solicitare pentru a vă reaminti să selectați o celulă pentru a afișa rezultatul, vedeți captura de ecran:

5. Clic OK, toate combinațiile posibile bazate pe listele date au fost generate în foaia de lucru, după cum se arată în următoarea captură de ecran:

Faceți clic pentru a descărca Kutools pentru Excel acum!


Mai multe articole relative:

  • Generați toate combinațiile de 3 sau mai multe coloane
  • 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?
  • Găsiți toate combinațiile care sunt egale cu o sumă dată
  • De exemplu, am următoarea listă de numere și acum vreau să știu ce combinație de numere din listă însumează 480, în următoarea captură de ecran afișată, puteți vedea că există cinci grupuri de combinații posibile care se adună la fel până la 480, cum ar fi 300 + 60 + 120, 300 + 60 + 40 + 80 etc. Acest articol, voi vorbi despre câteva metode pentru a găsi ce celule însumează o anumită valoare în Excel.
  • Generați sau enumerați toate permutările posibile
  • De exemplu, am trei caractere XYZ, acum, vreau să listez toate permutările posibile pe baza acestor trei caractere pentru a obține șase rezultate diferite astfel: XYZ, XZY, YXZ, YZX, ZXY și ZYX. În Excel, cum ați putea genera sau lista rapid toate permutările pe baza unui număr diferit de caractere?
  • Generați o listă cu toate combinațiile posibile de 4 cifre
  • În unele cazuri, este posibil să trebuiască să generăm o listă cu toate combinațiile posibile de 4 cifre de la numărul 0 la 9, ceea ce înseamnă că se generează o listă de 0000, 0001, 0002 ... 9999. Pentru a rezolva rapid sarcina listei în Excel, vă prezint câteva trucuri.

 


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • 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 fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... 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 ...
  • 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...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • 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 (42)
Evaluat 5 din 5 · evaluări 1
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aceasta este o formulă genială! Habar n-am cum funcționează, dar doar schimb collumele A și B pentru a se potrivi cât de lungi sunt listele mele și am rezultatul în D1.
Acest comentariu a fost redus la minimum de moderatorul de pe site
exemplu: lista mea de valori este 1,2,3,4,5,6......80, vreau ca kutool să afișeze toate combinațiile unui set de 2 numere, exemplu: 1-2, 1-3, 1-4 , 1-5 , ..................79-80 . este posibil acest lucru cu KUTOOL?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o modalitate de a face această formulă să funcționeze în cazul în care produce diferite combinații încă separate în 2 coloane separate, dar adiacente una cu cealaltă?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ai avut noroc să afli cum să faci asta? Încerc să fac exact același lucru și să am toate probabilitățile mele în 2 coloane separate în Excel.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ai mai avut noroc cu asta? Încerc să fac același lucru și să am toate combinațiile posibile una lângă alta în 2 coloane separate.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pot obține formula pentru toate combinațiile unei matrice 5*5 (5 rânduri și 5 coloane) pe care le-am încercat, dar nu am reușit, vă rog să mă ajutați......
Acest comentariu a fost redus la minimum de moderatorul de pe site
FOARTE UTILĂ. Acum pot genera combinații foarte ușor.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum ați putea folosi KuTools, sau chiar o formulă, dacă doriți toate permutările antetului Lună. ian, ian și februarie, ian și martie, ian și martie, ian și februarie și martie etc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Știe cineva cum să modifice acest lucru pentru a reflecta 6 coloane de date, mai degrabă decât doar două?
Acest comentariu a fost redus la minimum de moderatorul de pe site
cautand acelasi lucru. stie cineva?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Știe cineva cum să modifice acest lucru pentru a reflecta 6 coloane de date?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru mai multe coloane:
Prima parte a formulei trebuie modificată pentru a multiplica toate posibilitățile, de exemplu, aceasta ar fi pentru 6 coloane
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)
deci adaugi
*COUNTA(Rama ta aici)
pentru fiecare coloană
A doua parte a formulei trebuie modificată pentru fiecare coloană și astfel:
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)
deci adaugi
&INDEX(Intervalul dvs. aici, MOD(RÂND()-RÂND($I$2), COUNTA(Intervalul dvs. aici))+1)

Deci, puneți-le pe toate împreună și obțineți acest exemplu pentru 6 coloane:

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

Unde ați lipi această formulă în $I$2 și s-ar uita la $A$2:$A$9 $B$2:$B$9 $C$2:$C$9 ... până la $F$2:$F$9
Acest comentariu a fost redus la minimum de moderatorul de pe site
asta nu merge :( mai complicat decat asta
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru mai multe coloane:
Prima parte a formulei trebuie modificată pentru a multiplica toate posibilitățile, de exemplu, aceasta ar fi pentru 6 coloane:

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)
deci adaugi
*COUNTA(Rama ta aici)
pentru fiecare coloană

A doua parte a formulei trebuie modificată pentru fiecare coloană și astfel:

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)

deci adaugi

&INDEX(Intervalul dvs. aici, MOD(RÂND()-RÂND($I$2), COUNTA(Intervalul dvs. aici))+1)

Deci, puneți-le pe toate împreună și obțineți acest exemplu pentru 6 coloane:

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

Unde ați lipi această formulă în $I$2 și s-ar uita la $A$2:$A$9 $B$2:$B$9 $C$2:$C$9 ... până la $F$2:$F$9
Acest comentariu a fost redus la minimum de moderatorul de pe site
asta nu merge :( mai complicat decat asta
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ai idee cum să adaugi un spațiu între ele?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Eoin,
formula din acest articol nu vă poate ajuta să adăugați un spațiu între valorile celulei, dar puteți aplica Kutools pentru Excel, cu ea, puteți tasta orice delimitator după cum doriți să separați rezultatul combinat, vedeți captura de ecran:
Acest comentariu a fost redus la minimum de moderatorul de pe site
Puteți adăuga un spațiu adăugând „ "& înainte de a indexa coloana B, imediat după & existent, așa...

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


....sau orice alt delimitator iti place!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este KuTools capabil să sorteze celule într-un rând într-o „combinație simplă”?
Adică, dacă am aceste date:
_________________________
John Jack Paul Macy

Mark Larry

Jerry Paul Mary

Sam Jeff Peter Lucas
_________________________



Și vreau să le scot astfel:
___________
John Jack

Ioan Paul

John Macy

Jack Paul

Jack Macy

Paul Macy

Mark Larry

Jerry Paul

Jerry Marry

Paul Maria

Sam Jeff

Sam Peter

Sam Lucas

Jeff Peter

Jeff Lucas

Peter Lucas
____________


Cum pot face acest lucru? KuTools poate face așa ceva?

Multumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Arthur,
Ne pare rău, Kutools nu vă poate ajuta să rezolvați această treabă așa cum ați spus.
Vă mulțumesc pentru comentariul dvs.
Acest comentariu a fost redus la minimum de moderatorul de pe site
A găsit cineva o formulă care să facă asta pentru 5 seturi de date? Până acum am rămas nedumerit de asta.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Marco,
Kutools vă poate ajuta să vă rezolvați problema rapid, vă rugăm să verificați următoarea captură de ecran:
Vă rugăm să încercați, sper că vă poate ajuta, mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,
Vreau să știu ce să fac dacă vreau să generez mai mult de 1,4 milioane de combinații și depășesc limita de rânduri Excel?
Există vreo modalitate de a pune Kudos să-și continue iterația pe următoarea coloană?
Acest comentariu a fost redus la minimum de moderatorul de pe site
De ce formula mea nu a funcționat pentru a crea 25 de combinații în coloana E (5 elemente din Col A * 5 elemente din Col B)? Întrucât formula din acest articol a funcționat în coloana D când am tras-o pentru 25 de celule? Captură de ecran - https://prnt.sc/ihwr18
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hola me arroja una referință circulă la formula
=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))
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna ziua, si daca aceste combinatii intead text sunt numere, cum pot face calculul pentru rezultate???? Încerc să adaug "+" dar Excel nu știu că este simbolul.. cum rezolvi asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am folosit extensiile și funcționează fantastic, dar acum am o problemă, trebuie să calculez suma, dar rezultatul este un text, introdu un separator care este simbolul +, dar în sfârșit am un text și este imposibil de convertit într-o operațiune.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aproape foarte la îndemână. Ar fi bine dacă ar folosi de fapt orice se află în celulă ($A$1) și nu converti celula în text. Apoi aș putea doar să lipesc ceea ce am nevoie în A1 și să-l rulez din nou fără a fi nevoie să schimb nimic.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o modalitate de a scoate acest lucru ca fișier txt? Când aveți milioane de rezultate în coloana D, nu este tocmai practic să trageți mânerul de umplere.
Nu există comentarii postate aici încă
Încărcați mai
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