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
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.
essayez - =SUM(IF(FREQUENCY(MATCH(COLUMNRANGE,COLUMNRANGE,0),MATCH(COLUMNRANGE,COLUMNRANGE,0))>0,1))
où 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).
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.
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
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))
Une autre façon délicate qui m'est venue à l’esprit (testée et fonctionnée!).
Conditional Formatting
, Highlight Cells
, Duplicate Values
Data
puis à Filter
Filtre basé sur la couleur:
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.
Si vous utilisez un Mac
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/
Vous pouvez effectuer les étapes suivantes:
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;
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.
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.
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.