Passer au contenu principal

Comment lister ou générer toutes les combinaisons possibles dans Excel?

Disons que j'ai les deux colonnes de données suivantes, et maintenant, je veux générer une liste de toutes les combinaisons possibles en fonction des deux listes de valeurs comme illustré à gauche. Peut-être que vous pouvez lister toutes les combinaisons une par une s'il y a peu de valeurs, mais, s'il y a plusieurs colonnes avec plusieurs valeurs nécessaires pour répertorier les combinaisons possibles, voici quelques astuces rapides qui peuvent vous aider à résoudre ce problème dans Excel .

Listez ou générez toutes les combinaisons possibles à partir de deux listes avec formule

Répertoriez ou générez toutes les combinaisons possibles à partir de trois listes ou plus avec le code VBA

Répertoriez ou générez toutes les combinaisons possibles à partir de plusieurs listes avec une fonctionnalité puissante


Listez ou générez toutes les combinaisons possibles à partir de deux listes avec formule

La formule longue suivante peut vous aider à lister rapidement toutes les combinaisons possibles de deux valeurs de listes, procédez comme suit:

1. Entrez ou copiez la formule ci-dessous dans une cellule vide, dans ce cas, je l'entrerai dans la cellule D2, puis appuyez sur Entrer clé pour obtenir le résultat, voir capture d'écran:

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

Notes: Dans la formule ci-dessus, $ A $ 2: $ A $ 5 est la plage des valeurs de la première colonne, et 2 B $: 4 B $ est la plage des deuxièmes valeurs de liste dont vous souhaitez lister toutes leurs combinaisons possibles, le $ D $ 2 est la cellule dans laquelle vous mettez la formule, vous pouvez modifier les références de cellule selon vos besoins.

2. Sélectionnez ensuite la cellule D2 et faites glisser la poignée de recopie vers les cellules jusqu'à obtenir les cellules vides, et toutes les combinaisons possibles ont été répertoriées en fonction des valeurs des deux listes. Voir la capture d'écran:


Répertoriez ou générez toutes les combinaisons possibles à partir de trois listes ou plus avec le code VBA

Peut-être que la formule ci-dessus est quelque peu difficile à appliquer pour vous, s'il y a plusieurs colonnes de données, il sera difficile de la modifier. Ici, je vais introduire un code VBA pour le gérer rapidement.

1. Maintenez le ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Module Fenêtre.

Code VBA: générez toutes les combinaisons de 3 ou plusieurs colonnes

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
Notes: Dans le code ci-dessus, A2: A5, B2: B4, C2: C4 sont la plage de données que vous souhaitez utiliser, E2 est la cellule de sortie dans laquelle vous souhaitez localiser les résultats. Si vous souhaitez obtenir toutes les combinaisons de plusieurs colonnes, veuillez modifier et ajouter d'autres paramètres au code selon vos besoins.

3. Puis appuyez F5 clé pour exécuter ce code, et toutes les combinaisons des 3 colonnes seront générées en même temps, voir capture d'écran:


Répertoriez ou générez toutes les combinaisons possibles à partir de plusieurs listes avec une fonctionnalité puissante

S'il y a plusieurs listes, les valeurs doivent être répertoriées les combinaisons possibles, il est peut-être difficile pour vous de modifier le code. Ici, je peux recommander un outil puissant - Kutools for Excel, il contient une fonction pratique Lister toutes les combinaisons qui peut rapidement lister toutes les combinaisons possibles basées sur des listes de données données.

Pourboires:Appliquer cette Lister toutes les combinaisons fonctionnalité, tout d'abord, vous devez télécharger le Kutools for Excel, puis appliquez la fonction rapidement et facilement.

Après l'installation de Kutools for Excel, veuillez faire comme ceci:

1. Cliquez Kutools > insérer > Lister toutes les combinaisons, voir capture d'écran:

2. Dans le Lister toutes les combinaisons boîte de dialogue, effectuez les opérations comme ci-dessous la démonstration montrée:

3. Ensuite, toutes les valeurs et séparateurs spécifiés ont été répertoriés dans la boîte de dialogue, voir capture d'écran:

4.Et puis cliquez sur Ok bouton, et une boîte de dialogue apparaîtra pour vous rappeler de sélectionner une cellule pour afficher le résultat, voir capture d'écran:

5Cliquez sur OK, toutes les combinaisons possibles basées sur les listes données ont été générées dans la feuille de calcul comme illustré ci-dessous:

Cliquez pour télécharger Kutools for Excel maintenant!


Articles plus relatifs:

  • Générer toutes les combinaisons de 3 ou plusieurs colonnes
  • En supposant que j'ai 3 colonnes de données, maintenant, je souhaite générer ou répertorier toutes les combinaisons de données dans ces 3 colonnes, comme illustré ci-dessous. Avez-vous de bonnes méthodes pour résoudre cette tâche dans Excel?
  • Rechercher toutes les combinaisons égales à une somme donnée
  • Par exemple, j'ai la liste de nombres suivante, et maintenant, je veux savoir quelle combinaison de nombres dans la liste totalise jusqu'à 480, dans la capture d'écran suivante, vous pouvez voir qu'il y a cinq groupes de combinaisons possibles qui s'additionnent égaux à 480, comme 300 + 60 + 120, 300 + 60 + 40 + 80, etc. Cet article, je vais parler de certaines méthodes pour trouver quelles cellules se résument à une valeur spécifique dans Excel.
  • Générer ou répertorier toutes les permutations possibles
  • Par exemple, j'ai trois caractères XYZ, maintenant, je veux lister toutes les permutations possibles basées sur ces trois caractères pour obtenir six résultats différents comme ceci: XYZ, XZY, YXZ, YZX, ZXY et ZYX. Dans Excel, comment pouvez-vous générer ou répertorier rapidement toutes les permutations en fonction d'un nombre différent de caractères?
  • Générer une liste de toutes les combinaisons possibles à 4 chiffres
  • Dans certains cas, nous pouvons avoir besoin de générer une liste de toutes les combinaisons possibles de 4 chiffres de 0 à 9, ce qui signifie générer une liste de 0000, 0001, 0002… 9999. Pour résoudre rapidement la tâche de liste dans Excel, je vous présente quelques astuces.

 

Meilleurs outils de productivité bureautique

🤖 Aide à l'IA Kutools: Révolutionner l'analyse des données en s'appuyant sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les fonctions Kutools...
Caractéristiques populaires: Rechercher, mettre en évidence ou identifier les doublons   |  Supprimer les lignes vides   |  Combinez des colonnes ou des cellules sans perdre de données   |   Tour sans formule 
Super recherche: VSearchup à critères multiples    VSearch à valeurs multiples  |   Recherche virtuelle sur plusieurs feuilles   |   Recherche floue ....
Liste déroulante avancée: Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple ....
Gestionnaire de colonnes: Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages et les colonnes 
Caractéristiques en vedette: Mise au point de la grille   |  Voir Design   |   Grande barre de formule    Gestionnaire de classeurs et de feuilles   |  Centre de ressources (Texte automatique)   |  Sélecteur de date   |  Combiner des feuilles de travail   |  Crypter/déchiffrer les cellules    Envoyer des e-mails par liste   |  Super filtre   |   Filtre spécial (filtre gras/italique/barré...) ...
Les 15 meilleurs ensembles d'outils12 Texte Outils (Ajouter du texte, Supprimer les caractères, ...)   |   50+ Graphique Types (Diagramme de Gantt, ...)   |   40+ Pratique Formules (Calculer l'âge en fonction de l'anniversaire, ...)   |   19 Insertion Outils (Insérer le code QR, Insérer une image à partir du chemin, ...)   |   12 Conversion Outils (Nombres en mots, Conversion des devises, ...)   |   7 Fusionner et fractionner Outils (Lignes de combinaison avancées, Cellules divisés, ...)   |   ... et plus

Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...

Description


Office Tab apporte une interface à onglets à Office et facilite grandement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!

 

Comments (42)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
como que poderia gerar uma lista de combinações de nomes no LibreOffice?
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hello, Johansson

Sorry, the methods in this article are only applied for Microsoft Excel.
Thank you!
This comment was minimized by the moderator on the site
Hej alle sammen

Jeg håber at i kan hjælpe med dette.

Jeg har en af de gamle Bastalåse kodelåse med 6 knapper, hvor man kan trykke knapperne ind, lade dem være i neutral eller trække dem ud.

Låsen var åben da jeg købte den, så jeg låste den i håb om at jeg kunne gå kombinationerne igennem.

Men jeg har lidt problemer med at få nedskrevet samtlige kombinationer (729 så vidt jeg kan regne ud).

Er der en der vil hjælpe mig med med dette? Evt. kan man kalde de 3 indstillingsmuligheder pr. knap for: 1-2-3, 1-0-2, eller I-N-U (ind-neutral-ud).


Krydser finger og siger på forhånd mange tak hvis jeg kan få låsen op, det er sådan lidt nostalgi.

Mvh

Nicolaj
This comment was minimized by the moderator on the site
No 1º Exemplo de captura de tela , está faltando em All combinations Jan - KTE
This comment was minimized by the moderator on the site
Hello friend,
How are you. Thank you for your notice. We changed the first ficture. Please check now. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Hi,
I have a project with excel (including Kutools) that I am stuck on.
Can anyone tell me how to get a list of all combinations of 6 different numbers, without repeating any of the numbers?
I know there should be 6! = 720 combinations but I need the list.
Thanks
This comment was minimized by the moderator on the site
Hi,
I have a project with excel (including Kutools) that I am stuck on.
Can anyone tell me how to get a list of all combinations of 6 different numbers, without repeating any digit?
I know there should be 6! = 720 combinations but I need the list.
Thanks
This comment was minimized by the moderator on the site
Hello Extend Office,
I want to extend the VBA code in "List Or Generate All Possible Combinations From Three Or More Lists With VBA Code article"
I want to show only the one's whose total of the combinations is equal to 9. Can you please show the additional extension/lines in the code? sorry, I'm barely new in VBA.
For example, I only want to show the combinations like the following:
1-2-2-2-2 (this is equal to 1+2+2+2+2 = 9) so, it will show the ones whose total is 9, the rest won't show.
1-2-3-1-3 (=9)
1-3-2-1-2 (=9) and so on...

Thanks very much for your help
Dalesimplest.becky15.08.21

This comment was minimized by the moderator on the site
edited formula to randomize 5 columns instead of 3 but still wont work,why?
Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 As Range
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xF5 As Integer
Dim xSV1, xSV2, xSV3, xSV4, xSV5 As String
Set xDRg1 = Range("A2:A10") 'First column data
Set xDRg2 = Range("B2:B10") 'Second column data
Set xDRg3 = Range("C2:C10") 'Third column data
Set xDRg2 = Range("D2:D10") 'Fourth column data
Set xDRg3 = Range("E2:E10") 'Fifth column data
xStr = "," 'Separator
Set xRg = Range("G2") '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
For xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
For 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)
Next
Next
Next
End Sub
This comment was minimized by the moderator on the site
Hello, jericho,You should modify your code as below code, please try it, thank you!<div data-tag="code">Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 As Range
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xFN5 As Integer
Dim xSV1, xSV2, xSV3, xSV4, xSV5 As String
Set xDRg1 = Range("A2:A10") 'First column data
Set xDRg2 = Range("B2:B10") 'Second column data
Set xDRg3 = Range("C2:C10") 'Third column data
Set xDRg4 = Range("D2:D10") 'Fourth column data
Set xDRg5 = Range("E2:E10") 'Fifth column data
xStr = "-" 'Separator
Set xRg = Range("H2") '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
For xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
For 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)
Next
Next
Next
Next
Next
End Sub
This comment was minimized by the moderator on the site
How to remove the repetition if I have color 1, color 2, color 3 in different orders(i.e. color2, color 3, color 1) but they are the same for my need? tks!
This comment was minimized by the moderator on the site
Excelentes soluciones, muchas gracias, lo logré con Kutools
This comment was minimized by the moderator on the site
NON FUNZIONA. HO SEGUITO GLI STESSI PASSAGGI MA MI DICE CHE C'E' UN ERRORE
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations