Comment obtenir les valeurs distinctes / uniques dans une colonne d'Excel?

281

Si j'ai une colonne avec des valeurs et que je souhaite savoir quelles sont les valeurs distinctes (pas combien - mais les valeurs distinctes réelles), comment puis-je le faire?

Dans SQL Server, je ferais quelque chose comme

SELECT Distinct(MyColumn) FROM MyTable
Kjensen
la source

Réponses:

297

Plus simple que vous ne le pensez:

  • Cliquez sur le menu du ruban de données
  • Sélectionnez le bouton Avancé dans la section Trier et filtrer .
  • Remplissez la boîte de dialogue en copiant les résultats dans un autre emplacement et en veillant à cocher uniquement les enregistrements uniques.

entrez la description de l'image ici

Un nain
la source
30
Pour ceux d'entre nous qui vivent encore sans ruban, il s'agit de Data-> Filter-> Advanced.
JT Grimes
10
+1 Cette méthode est préférable à Supprimer les doublons si vous souhaitez conserver les données d'origine intactes.
Excellll
17
Si vous copiez des données sur une autre feuille, vous devez ouvrir la boîte de dialogue Avancé à partir de la feuille que vous souhaitez copier , sinon vous obtiendrez une You can only copy filtered data to the active sheeterreur.
Dave Zych
5
Cela ne se met pas à jour lorsque les valeurs de la plage source changent. Y a-t-il un moyen de le rendre dynamique?
Hughes
129

Excel 2007 et 2010:
utilisez l' Remove Duplicatesoption de menu sous l'en- tête Données .

Excel 2003:
moyen facile:

  1. Assurez-vous que vos données ont un en-tête
  2. Données -> Filtre -> Filtre avancé
  3. Vérifier les enregistrements uniques uniquement
  4. Sélectionnez Copier vers un autre emplacement
  5. Cliquez sur OK

Façon difficile:

Ecrivez une macro avec le code suivant:

'Remove duplicates from sorted list
Sub getDistinct()
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
            ActiveCell.Select
            Selection.Delete Shift:=xlUp
        Else
            ActiveCell.Offset(1, 0).Activate
        End If
    Loop
End Sub

Cela vous donne votre liste distincte. Vous voudrez peut-être d'abord copier votre liste sur une autre feuille.

Nathan DeWitt
la source
20
Merci! Ceci est une preuve que Stack Exchange est bien meilleur que toute autre source d'informations techniques. Tous les autres résultats de Google sont inutiles et non classés. Je me demande aussi comment les experts en échange survivent
Eran Medan
21

J'utilise deux méthodes principales pour obtenir des valeurs distinctes - la première est l' Remove Duplicatesoutil inestimable suggéré par Nathan DeWitt .

L'inconvénient Remove Duplicatesest que vous perdez des données. Malgré la puissance de Ctrl+, zvous ne voudrez peut-être pas le faire pour diverses raisons - par exemple, vous pouvez avoir des filtres actuellement sélectionnés qui rendent assez fastidieux la suppression des doublons pour obtenir votre liste de valeurs distincte.

L'autre méthode, non mentionnée ci-dessus, consiste à utiliser un tableau croisé dynamique.

Disons qu'il s'agit de votre table et que vous souhaitez obtenir la liste distincte des plates-formes. table factice

Insérez un Pivot Tableavec la table comme source de données.

Sélectionnez maintenant la colonne Plate - forme (s) en tant que votre Row Labels.

Voila! Une liste de valeurs distinctes.

tableau croisé dynamique en tant que liste de valeurs distinctes

Si vous souhaitez ranger ce, vous pouvez désactiver Field Headerset régler Grand Totalsêtre Off for Rows and Columns.

Andi Mohr
la source
1
La technique de tableau croisé dynamique est géniale! Merci pour cela.
Thomas L Holaday
20

Ou (d'une manière simple et grossière):

En B1,

=IF(COUNTIF(A$1:A1,A1)=1,A1,"") 

et copier. Il ne fait que copier la première occurrence de chaque valeur (dans la ligne dans laquelle elle apparaît).

Tapgas
la source
1
Comme pour toutes les formules Excel, vous devrez peut-être utiliser des points-virgules ( ;) au lieu de virgules ( ,) en fonction des paramètres régionaux de votre système.
Scott
5

Ou vous pouvez inclure l'option de filtre dans une macro

    Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Cjcottell
la source
3

Pour moi, le moyen le plus simple de trier est d'utiliser l'option "Filtrer".

La première étape consiste à rechercher les valeurs en double avec Mise en forme conditionnelle -> Règles de mise en évidence des cellules -> Valeurs en double.

Cliquez ensuite sur la flèche de la colonne dans laquelle se trouvent les doublons (ici, "Plateformes") -> Filtrer par couleur (couleur des cellules ou couleur de la police).

Juste moi
la source
Le résultat ici est différent, toutes les occurrences de doublons étant supprimées. Par exemple, la colonne avec les valeurs [a, a, b]doit être réduite à [a, b], pas [b].
Hugo Ideler