web-dev-qa-db-fra.com

Compter les valeurs uniques dans une colonne dans Excel

J'ai un .xls fichier avec une colonne avec des données. Comment compter combien de valeurs uniques contiennent cette colonne?

J'ai recherché de nombreuses options dans Google, mais les formules qu'ils donnent là me font toujours des erreurs. Par exemple,

=INDEX(List, MATCH(MIN(IF(COUNTIF($B$1:B1, List)=0, 1, MAX((COUNTIF(List, "<"&List)+1)*2))*(COUNTIF(List, "<"&List)+1)), COUNTIF(List, "<"&List)+1, 0))

résultats enter image description here

39
Ivanka Todorova

Pour compter le nombre de valeurs différentes dans A2: A100 (sans compter les blancs):

=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100&""))


Copié d'une réponse par @ Ulli Schmid à Que fait cette formule COUNTIF ()? :

=SUMPRODUCT((A1:A100<>"")/COUNTIF(A1:A100,A1:A100&""))

Compte cellules uniques dans A1: A100, exclure cellules vides et celles avec une chaîne vide ("").

Comment ça fait ça? Exemple:

A1:A100 = [1, 1, 2, "Apple", "Peach", "Apple", "", "", -, -, -, ...]
then:
A1:A100&"" = ["1", "1", "2", "Apple", "Peach", "Apple", "", "", "", "", "", ...]

donc ceci & "" est nécessaire pour transformer des cellules vides (-) en chaînes vides (""). Si vous comptez directement à l'aide de cellules vides, COUNTIF () renvoie 0. En utilisant l'astuce, les "" et - sont comptés de la même manière:

COUNTIF(A1:A100,A1:A100) = [2, 2, 1, 2, 1, 2, 94, 94, 0, 0, 0, ...]
but:
COUNTIF(A1:A100,A1:A100&"") = [2, 2, 1, 2, 1, 2, 94, 94, 94, 94, 94, ...]

Si nous voulons maintenant obtenir le nombre de toutes les cellules uniques, en excluant les blancs et les "", nous pouvons diviser

(A1:A100<>""), which is [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, ...]

par notre résultat intermédiaire, COUNTIF (A1: A100, A1: A100 & ""), et résumez les valeurs.

SUMPRODUCT((A1:A100<>"")/COUNTIF(A1:A100,A1:A100&""))  
= (1/2 + 1/2 + 1/1 + 1/2 + 1/1 + 1/2 + 0/94 + 0/94 + 0/94 + 0/94 + 0/94 + ...)
= 4

Si nous avions utilisé COUNTIF(A1:A100,A1:A100) au lieu de COUNTIF(A1:A100,A1:A100&""), certains de ces 0/94 auraient été 0/0. Comme la division par zéro n'est pas autorisée, nous aurions généré une erreur.

105
barry houdini

essayez - =SUM(IF(FREQUENCY(MATCH(COLUMNRANGE,COLUMNRANGE,0),MATCH(COLUMNRANGE,COLUMNRANGE,0))>0,1))

COLUMNRANGE = la plage dans laquelle vous avez ces valeurs.

par exemple. - =SUM(IF(FREQUENCY(MATCH(C12:C26,C12:C26,0),MATCH(C12:C26,C12:C26,0))>0,1))

Appuyez sur Ctrl + Maj + Entrée pour transformer la formule en tableau (le calcul ne sera pas correct autrement).

15
Nilesh Deshmukh

Voici un autre moyen rapide d’obtenir le nombre de valeurs uniques, ainsi que les valeurs uniques. Copiez la colonne qui vous tient à cœur dans une autre feuille de calcul, puis sélectionnez la colonne entière. Cliquez sur Données -> Supprimer les doublons -> OK. Cela supprime toutes les valeurs dupliquées.

11
Arconath

Voici une formule de tableau élégante (que j'ai trouvée ici http://www.Excel-easy.com/examples/count-unique-values.html ) qui fait parfaitement l'affaire:

Type

= SUM (1/COUNTIF (Liste, Liste))

et confirmez avec CTRL-SHIFT-ENTER

9
Your Excel Guy

Comptez unique avec une condition. Col A est l'ID et utilise la condition ID=32, Col B est Name et nous essayons de compter les noms uniques pour un identifiant particulier

=SUMPRODUCT((B2:B12<>"")*(A2:A12=32)/COUNTIF(B2:B12,B2:B12))
3
Derek

Une autre façon délicate qui m'est venue à l’esprit (testée et fonctionnée!).

  • Sélectionnez les données dans la colonne
  • Dans le menu, sélectionnez Conditional Formatting, Highlight Cells, Duplicate Values
  • Indiquez si vous souhaitez mettre en surbrillance des valeurs uniques ou en double.
  • Enregistrer la surbrillance
  • Sélectionnez les données
  • Allez à Data puis à Filter

Filtre basé sur la couleur:

Excel -- 2013 at least -- lets you filter on color. Sweet!

Certes, il s’agit davantage de vérifications ponctuelles de données que de feuilles de calcul que vous utiliserez souvent, car certaines modifications de formatage sont nécessaires.

2
SeanKilleen

Si vous utilisez un Mac

  1. surligner la colonne
  2. copie
  3. ouvrir terminal.app
  4. tapez pbpaste|sort -u|wc -l

Les utilisateurs de Linux remplacent pbpaste par xclip xsel ou similaire

Utilisateurs de Windows, c'est possible, mais cela prendrait un peu de script ... commencez par http://brianreiter.org/2010/09/03/copy-and-paste-with-clipboard-from-powershell/

1
furicle

Vous pouvez effectuer les étapes suivantes:

  1. Commencez par isoler la colonne (en insérant une colonne vide avant et/ou après la colonne, vous souhaitez compter les valeurs uniques s'il existe des colonnes adjacentes;

  2. Puis sélectionnez toute la colonne, allez dans "Données"> "Filtre avancé" et cochez la case "Enregistrements uniques uniquement". Cela va masquer tous les enregistrements non uniques afin que vous puissiez compter ceux-ci en sélectionnant la colonne entière.

1
Jerry

Vous pouvez ajouter une nouvelle formule pour un nombre d'enregistrement unique

=IF(COUNTIF($A$2:A2,A2)>1,0,1)

Vous pouvez maintenant utiliser un tableau croisé dynamique et obtenir un SUM de nombre d'enregistrements unique. Cette solution fonctionne mieux si vous avez deux lignes ou plus contenant la même valeur, mais vous souhaitez que le tableau croisé dynamique rapporte un nombre unique.

0
Henry Tran

J'utilise une feuille de calcul avec des en-têtes à la ligne 1, les données sont aux lignes 2 et inférieures.

Les identifiants sont dans la colonne A. Pour compter le nombre de valeurs différentes, je mets cette formule de la ligne 2 à la fin de la feuille de calcul de la première colonne disponible [F dans mon cas]: "=IF(A2=A1,F1+1,1)".

Ensuite, j'utilise la formule suivante dans une cellule libre: "=COUNTIF(F:F,1)". De cette façon, je suis sûr que chaque identifiant est compté.

Veuillez noter que les identifiants doivent être triés, sinon ils seront comptés plus d'une fois ... mais contrairement aux formules matricielles, il est très rapide, même avec une feuille de calcul 1500 rangées.

0
grab74