Passer au contenu principal
 

Comment répertorier toutes les combinaisons possibles à partir d'une seule colonne dans Excel ?

Auteur : Xiaoyang Dernière modification: 2023-04-10

Si vous souhaitez renvoyer toutes les combinaisons possibles à partir de données à une seule colonne pour obtenir le résultat illustré ci-dessous, avez-vous des moyens rapides de gérer cette tâche dans Excel ?

Répertorier toutes les combinaisons possibles à partir d'une seule colonne avec des formules

Répertorier toutes les combinaisons possibles à partir d'une seule colonne avec le code VBA


Répertorier toutes les combinaisons possibles à partir d'une seule colonne avec des formules

Les formules matricielles suivantes peuvent vous aider à réaliser ce travail, veuillez procéder étape par étape :

1. Tout d'abord, vous devez créer deux cellules de formule d'assistance. Dans la cellule C1, veuillez entrer la formule ci-dessous et appuyez sur Ctrl + Maj + Entrée touches pour obtenir le résultat :

=MAX(LEN(A2:A6))
Notes: Dans cette formule, A2: A6 est la liste des cellules dont vous souhaitez répertorier leurs combinaisons.

2. Dans la cellule C2, entrez la formule suivante et appuyez sur Ctrl + Maj + Entrée touches ensemble pour obtenir le deuxième résultat, voir capture d'écran :

=CONCAT(A2:A6&REPT(" ",C2-LEN(A2:A6)))
Notes: Dans cette formule, A2: A6 est la liste des cellules dont vous voulez lister leurs combinaisons, C2 est la cellule contient la formule que vous avez créée à l'étape 1.

3. Ensuite, copiez et collez la formule suivante dans la cellule D2 et appuyez sur Ctrl + Maj + Entrée clés ensemble pour obtenir le premier résultat, voir capture d'écran:

=IF(ROW()>2^(COUNTA(A$2:A$6)),"",TEXTJOIN(" + ",TRUE,IF(MID(TEXT(DEC2BIN(ROW()-1),REPT("0",COUNTA($A$2:$A$6))),ROW(INDIRECT("1:"&COUNTA($A$2:$A$6))),1)+0,TRIM(MID($C$3,(ROW(INDIRECT("1:"&COUNTA($A$2:$A$6)))-1)*$C$2+1,$C$2)),"")))
Notes: Dans cette formule, A2: A6 est la liste des cellules dont vous voulez lister leurs combinaisons, C2 si la cellule contient la formule que vous avez créée à l'étape 1, C3 est la cellule avec la formule que vous avez créée à l'étape 2, la + Le caractère est le séparateur pour séparer les combinaisons, vous pouvez les modifier selon vos besoins.

4. Ensuite, sélectionnez cette cellule de formule et faites glisser la poignée de remplissage vers le bas jusqu'à ce que des cellules vides apparaissent. Maintenant, vous pouvez voir toutes les combinaisons des données de colonne spécifiées sont affichées comme ci-dessous :

Notes: Cette formule est uniquement disponible dans Office 2019, 365 et versions ultérieures.

Répertorier toutes les combinaisons possibles à partir d'une seule colonne avec le code VBA

Les formules ci-dessus ne sont disponibles que pour les nouvelles versions d'Excel, si vous avez des versions antérieures d'Excel, le code VBA suivant peut vous rendre service.

1. presse Alt + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. Puis clique insérer > Module, copiez et collez le code VBA ci-dessous dans la fenêtre.

Code VBA : répertorier toutes les combinaisons possibles à partir d'une seule colonne

Sub ConnectArr()
'Updateby ExtendOffice
Dim xDValue As Variant
Dim xOutRg As Range
Dim xDictionary As Object
Dim xF As Long
Dim xChar As String
xDValue = Range("A2:A6").Value 'the data range
Set xOutRg = Range("C1") 'output range
xChar = "," 'separator
For xF = 1 To UBound(xDValue)
    Set xDictionary = CreateObject("Scripting.Dictionary")
    xDictionary(0) = "Sets of " & xF
    Call ConnectValue(xDValue, xDictionary, 0, xF, 0, "", xChar)
    xOutRg.Offset(0, xF - 1).Resize(xDictionary.Count).Value = WorksheetFunction.Transpose(xDictionary.Items)
    Set xDictionary = Nothing
Next
End Sub
Sub ConnectValue(ByRef pDValue, ByRef pDictionary, ByRef pLevel, ByVal pMaxLevel, ByVal pIndex, ByVal pValue, ByVal pChar)
Dim xF As Long
If pLevel = pMaxLevel Then
    pDictionary(pDictionary.Count + 1) = pValue
    Exit Sub
End If
For xF = pIndex + 1 To UBound(pDValue)
    If pValue = "" Then
        Call ConnectValue(pDValue, pDictionary, pLevel + 1, pMaxLevel, xF, pDValue(xF, 1), pChar)
    Else
        Call ConnectValue(pDValue, pDictionary, pLevel + 1, pMaxLevel, xF, pValue & pChar & pDValue(xF, 1), pChar)
    End If
Next
End Sub
Notes: Dans le code ci-dessus:
  • A2: A6: est la liste des données que vous souhaitez utiliser ;
  • C1: est la cellule de sortie ;
  • ,: le délimiteur pour séparer les combinaisons.

3. Et ensuite, appuyez sur F5 touche pour exécuter ce code. Toutes les combinaisons de la colonne unique sont répertoriées comme illustré ci-dessous :

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   |  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...


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!