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

Comment extraire des valeurs uniques de plusieurs colonnes dans Excel?

En supposant que vous ayez plusieurs colonnes avec plusieurs valeurs, certaines valeurs sont répétées dans la même colonne ou dans une colonne différente. Et maintenant, vous voulez trouver les valeurs présentes dans l'une ou l'autre colonne une seule fois. Existe-t-il des astuces rapides pour extraire des valeurs uniques de plusieurs colonnes dans Excel?


Extraire des valeurs uniques de plusieurs colonnes avec une formule matricielle

Voici une formule matricielle qui peut également vous aider à extraire les valeurs uniques de plusieurs colonnes.

1. En supposant vos valeurs dans la plage A2: C9, veuillez entrer la formule suivante dans la cellule E2:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""

Notes: Dans la formule ci-dessus, A2: C9 indique la plage de cellules dont vous souhaitez extraire les valeurs uniques, E1: E1 est la première cellule de la colonne dans laquelle vous souhaitez placer le résultat, $ 2: $ 9 se dresse sur les lignes contiennent les cellules que vous souhaitez utiliser, et $ A: $ C indique que les colonnes contiennent les cellules que vous souhaitez utiliser. Veuillez les changer pour les vôtres.

2. Puis appuyez Maj + Ctrl + Entrée clés ensemble, puis faites glisser la poignée de recopie pour extraire les valeurs uniques jusqu'à ce que des cellules vides apparaissent. Voir la capture d'écran:


Extraire des valeurs uniques de plusieurs colonnes avec le tableau croisé dynamique

Si vous connaissez le tableau croisé dynamique, vous pouvez facilement extraire les valeurs uniques de plusieurs colonnes en suivant les étapes suivantes:

1. Dans un premier temps, veuillez insérer une nouvelle colonne vide à gauche de vos données, dans cet exemple, je vais insérer la colonne A à côté des données d'origine.

2. Cliquez sur une cellule de vos données et appuyez sur Alt + D touches, puis appuyez sur P clé immédiatement pour ouvrir le Assistant de tableau croisé dynamique et graphique croisé dynamique, choisissez Plusieurs plages de consolidation dans l'assistant step1, voir capture d'écran:

3. Puis clique Suivant bouton, vérifier Créez un champ de page unique pour moi option dans l'assistant step2, voir capture d'écran:

4. Continuez à cliquer Suivant , cliquez pour sélectionner la plage de données comprenant la nouvelle colonne de cellules de gauche, puis cliquez sur Ajouter pour ajouter la plage de données au Toutes les gammes zone de liste, voir capture d'écran:

5. Après avoir sélectionné la plage de données, continuez à cliquer Suivant, à l'étape 3 de l'assistant, choisissez où vous souhaitez placer le rapport de tableau croisé dynamique comme vous le souhaitez.

6. Enfin, cliquez Récapitulatif pour terminer l'assistant, et un tableau croisé dynamique a été créé dans la feuille de calcul actuelle, puis décochez tous les champs de la Choisissez les champs à ajouter au rapport section, voir capture d'écran:

7. Vérifiez ensuite le champ Valeur ou faites glisser la valeur vers le rangées label, vous obtiendrez maintenant les valeurs uniques des multiples colonnes comme suit:


Extraire des valeurs uniques de plusieurs colonnes avec le code VBA

Avec le code VBA suivant, vous pouvez également extraire les valeurs uniques de plusieurs colonnes.

1. Maintenez le ALT + F11 clés, et il ouvre le Fenêtre Microsoft Visual Basic pour Applications.

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

VBA: extraire des valeurs uniques de plusieurs colonnes

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3. Puis appuyez F5 pour exécuter ce code, et une boîte de dialogue apparaîtra pour vous rappeler de sélectionner la plage de données que vous souhaitez utiliser. Voir la capture d'écran:

4. Et puis cliquez OK, une autre boîte de dialogue apparaîtra pour vous permettre de choisir un endroit pour mettre le résultat, voir capture d'écran:

5. Cliquez OK pour fermer cette boîte de dialogue, et toutes les valeurs uniques ont été extraites en même temps.


Extraire des valeurs uniques d'une seule colonne avec une fonctionnalité étonnante

Parfois, vous devez extraire les valeurs uniques d'une seule colonne, les méthodes ci-dessus ne vous aideront pas, ici, je peux recommander un outil utile-Kutools pour Excel, Avec son Extraire des cellules avec des valeurs uniques (inclure le premier duplicata) utilitaire, vous pouvez extraire rapidement les valeurs uniques.

Remarque :Appliquer cette Extraire des cellules avec des valeurs uniques (inclure le premier duplicata), tout d'abord, vous devez télécharger le Kutools pour Excel, puis appliquez la fonction rapidement et facilement.

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

1. Cliquez sur une cellule dans laquelle vous souhaitez afficher le résultat. (Notes: Ne cliquez pas sur une cellule de la première ligne.)

2. Puis clique Kutools > Aide à la formule > Aide à la formule, voir capture d'écran:

3. Dans le Aide aux formules boîte de dialogue, veuillez effectuer les opérations suivantes:

  • Sélectionnez Texte Option de Laits en poudre Catégorie la liste déroulante;
  • Alors choisi Extraire des cellules avec des valeurs uniques (inclure le premier duplicata) du Choisissez une fromule zone de liste;
  • Dans le droit Entrée d'arguments , sélectionnez une liste de cellules dont vous souhaitez extraire des valeurs uniques.

4. Puis clique Ok et faites glisser la poignée de remplissage vers les cellules pour lesquelles vous souhaitez répertorier toutes les valeurs uniques jusqu'à ce que les cellules vides s'affichent, voir capture d'écran:

Téléchargez gratuitement Kutools pour Excel maintenant!


Articles plus relatifs:

  • Compter le nombre de valeurs uniques et distinctes dans une liste
  • Supposons que vous ayez une longue liste de valeurs avec des éléments en double, maintenant, vous voulez compter le nombre de valeurs uniques (les valeurs qui n'apparaissent dans la liste qu'une seule fois) ou de valeurs distinctes (toutes les valeurs différentes de la liste, cela signifie unique valeurs + 1ère valeur en double) dans une colonne comme illustré à gauche. Cet article, je vais parler de la façon de gérer ce travail dans Excel.
  • Extraire des valeurs uniques basées sur des critères dans Excel
  • Supposons que vous ayez la plage de données suivante que vous souhaitez lister uniquement les noms uniques de la colonne B en fonction d'un critère spécifique de la colonne A pour obtenir le résultat comme illustré ci-dessous. Comment pouvez-vous gérer cette tâche dans Excel rapidement et facilement?
  • Autoriser uniquement les valeurs uniques dans Excel
  • Si vous souhaitez conserver uniquement des valeurs uniques entrant dans une colonne de feuille de calcul et éviter les doublons, cet article présentera quelques astuces rapides pour vous permettre de gérer cette tâche.
  • Somme des valeurs uniques basées sur des critères dans Excel
  • Par exemple, j'ai une plage de données qui contient les colonnes Nom et Ordre, maintenant, pour additionner uniquement les valeurs uniques dans la colonne Ordre en fonction de la colonne Nom comme illustré ci-dessous. Comment résoudre cette tâche rapidement et facilement dans Excel?

Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement 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!
bas de cabine
Commentaires (31)
Noté 5 hors 5 · évaluations 1
Ce commentaire a été minimisé par le modérateur sur le site
Is this formula complete? =INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"",
Ce commentaire a été minimisé par le modérateur sur le site
Ce n'est pas encore réglé :sad:
Ce commentaire a été minimisé par le modérateur sur le site
quelle perte de temps ..... la formule ne fonctionne PAS
Ce commentaire a été minimisé par le modérateur sur le site
Merci!!! J'ai passé des heures à essayer de faire cela et à comprendre ce qui est arrivé à l'assistant Pivot (autre article).
Ce commentaire a été minimisé par le modérateur sur le site
J'utilise votre code VBA, mais je ne veux pas que la boîte s'affiche. Au lieu de cela, je veux définir exactement quelle plage de cellules utiliser à chaque fois et exactement dans quelle boîte mettre la sortie. La plage d'entrée et la sortie seraient sur deux feuilles différentes. comment mettre à jour le VBA pour le faire? Merci!!
Ce commentaire a été minimisé par le modérateur sur le site
Hé! Est-ce que quelqu'un sait pourquoi cette formule semble conduire à une erreur après la ligne 87 ? Par exemple, cela fonctionne parfaitement et à un certain moment, cela me renvoie simplement des erreurs pour chaque ligne... ce qui est le pire ! Parce que je suis si près de ce dont j'ai besoin ici...
Ce commentaire a été minimisé par le modérateur sur le site
=INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"" It doesn't work
Ce commentaire a été minimisé par le modérateur sur le site
salut je veux extraire des cellules uniques de la première colonne quand je la compare avec une autre colonne (j'ai trois colonnes inégales), comment puis-je le faire?
Ce commentaire a été minimisé par le modérateur sur le site
salut j'ai trois colonnes inégales et je veux extraire des cellules uniques de la première colonne. Comment puis-je le faire?? Merci d'avance
Ce commentaire a été minimisé par le modérateur sur le site
J'aime

Extraire des valeurs uniques de plusieurs colonnes avec un tableau croisé dynamique
Ce commentaire a été minimisé par le modérateur sur le site
Pouvez-vous s'il vous plaît soumettre la formule correcte ... la fonction VBA fonctionne très bien.
Juste pour mon projet, j'utilise plutôt la bonne formule.


Merci
Ce commentaire a été minimisé par le modérateur sur le site
est-ce que quelqu'un sait, pour la sortie, comment en faire plusieurs lignes mais pas une seule ligne ? (actuellement, un résultat de ligne est obtenu par worksheetfunction.transpose, mais ce que je veux obtenir (comme résultat), c'est que lorsque vous sélectionnez pour 3 colonnes, le résultat renvoyé est également de 3 colonnes, au lieu d'une
Ce commentaire a été minimisé par le modérateur sur le site
Cette formule matricielle est CORRECTE. Données dans les colonnes A à C, première formule de résultat dans la cellule D2... Celle-ci est différente des autres formules matricielles car la dernière copie la formule vers le bas et Ctrl+Maj+Entrée dans toutes les formules. Cependant, cette formule matricielle doit être effectuée avec Ctrl + Maj + Entrée dans la première cellule et copiée vers le bas.
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup pour la macro !!! moi fue muy util
Ce commentaire a été minimisé par le modérateur sur le site
je me suis ajusté à ma feuille mais je ne renvoie que la première valeur du tableau défini... qu'est-ce qui me manque?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Cody,
La formule ci-dessus fonctionne bien dans ma feuille de calcul, pourriez-vous donner une capture d'écran de votre problème de données ici ?
Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Concernant la version formule, pourriez-vous expliquer plus en détail ce que fait cette partie ? *100+COLUMN($A:$C),7^8)),"R0C00") Concrètement, quels sont les * 100, 7 ^ 8 et "R0C000" Faire? Je comprends tout le reste, mais je n'arrive pas à comprendre à quoi ils servent.
Ce commentaire a été minimisé par le modérateur sur le site
Un peu tard pour ma réponse ici mais...
ROW($2:$9)*100 - cela multiplie le numéro de ligne *100, donc si c'est dans la ligne 5, maintenant le nombre est 500
COLONNE($A:$C) - ceci est ajouté au nombre de ligne*100, donc si c'est la ligne 5 col 2, alors le nombre est 502.
7 ^ 8)), - ceci (je pense) doit avoir une valeur max pour l'instruction min de plus tôt.
"R0C00") - cela formate le texte en fonction du nombre. Dans l'exemple, nous avions 502 donc cela donne R5C02 (ligne 5, col 02).

Si vous avez beaucoup de colonnes mais pas beaucoup de lignes, vous pouvez le changer en ROW($2:$9)*1000+COLONNE($A:$C),7^8)),"R0C000")
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour le code. J'utilise le code VBA de cette page. Existe-t-il un moyen d'ajouter un code de tri après l'extraction des valeurs uniques afin qu'il le trie automatiquement ?
Ce commentaire a été minimisé par le modérateur sur le site
pouvons-nous créer une fonction uniqdata au lieu d'une macro ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut, İlhan,Si vous aimez une fonction définie par l'utilisateur pour créer une formule pour résoudre ce problème, le code ci-dessous peut vous aider : après avoir inséré le code, sélectionnez une liste de cellules dans lesquelles vous souhaitez placer les résultats. Tapez ensuite cette formule :=Uniques(A1:C4)  dans la barre de formule.Appuyez sur Ctrl + Maj + Entrée clés ensemble. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
Ce commentaire a été minimisé par le modérateur sur le site
Czy à żart?
Ce commentaire a été minimisé par le modérateur sur le site
La formule matricielle en haut fonctionne très bien lorsqu'elle est utilisée avec des données dans la même feuille, mais lorsque j'essaie de l'utiliser pour référencer les mêmes données exactes d'une autre feuille, la formule ne renvoie rien. Je suis incapable de comprendre pourquoi. Existe-t-il une limitation avec les fonctions de tableau qui vous empêche de référencer des plages dans une feuille différente ?

Merci pour toute idée que vous pouvez fournir.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Erin,

Heureux de vous aider. La fonction INDIRECT dans cette formule est plus compliquée à utiliser lors du référencement de données dans d'autres feuilles de calcul. Il n'est pas recommandé d'utiliser cette fonction lorsque vous référencez des plages dans différentes feuilles de calcul.

Par exemple : Maintenant, les données sont dans Sheet1, je veux référencer le contenu de la cellule C2 de Sheet1 dans Sheet2. Tout d'abord, dans deux cellules de Sheet2, telles que D1 et D2, entrez Sheet1 et C2, respectivement. À ce stade, entrez la formule dans la cellule vide de Sheet2 :
=INDIRECT("'"&D1&"'!"&D2), le contenu de la cellule C2 dans Sheet1 peut être renvoyé.

Comme vous pouvez le voir, cela rend les choses beaucoup plus complexes. J'espère que mon explication pourra vous aider. Passez une bonne journée.

Sincèrement,
Mandy
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour monsieur! Le VBA a fonctionné à merveille, merci beaucoup pour cela ! Je me demandais si je modifiais les données d'origine, est-il possible d'actualiser automatiquement la colonne avec les valeurs uniques ?
Noté 5 hors 5
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Ioannis,

Heureux de vous aider. Après avoir modifié les données d'origine, le VBA ne peut pas actualiser automatiquement le résultat. Et le moyen le plus simple auquel je puisse penser est d'appuyer sur Ctrl + Alt + F9 pour actualiser tous les résultats dans les feuilles de calcul de tous les classeurs ouverts. Passez une bonne journée.

Sincèrement,
Mandy
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour cet article excellent.

Pour les personnes qui utilisent le formule matricielle dans Excel non anglais il faut faire particulièrement attention à la chaîne de format texte : dans votre exemple : "R0C00".
Pour l'allemand, cela se traduirait par "Z0S00". Cependant, "S" est un caractère spécial faisant référence aux secondes pour le formatage de l'heure. Ce caractère doit être échappé et donc la chaîne de format correcte pour Excel allemand est "Z0\S00".

J'espère que cela aidera quelqu'un à l'avenir :-)
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés