2010-09-17 14:13:03 +0000 2010-09-17 14:13:03 +0000
32
32

Comment compter le nombre de valeurs distinctes dans une gamme ?

J'ai une grande table qui est déjà organisée à l'aide de filtres, etc. J'aimerais ajouter un résumé sous certaines colonnes qui contiennent le nombre de valeurs distinctes dans cette colonne.

**Il n'y a pas de fonction =COUNTDISTINCT(A2:A100) alors que puis-je faire à la place ? (Excel 2003)

Je ne peux pas exactement utiliser les réponses à cette question similaire parce que je ne veux pas modifier le tableau ou le filtrage. J'ai besoin d'un ajout dans la feuille de calcul, pas d'une modification.

Réponses (7)

32
32
32
2011-06-05 08:44:38 +0000
=SUMPRODUCT((A2:A100 <> "")/COUNTIF(A2:A100,A2:A100 & ""))

le fera sans avoir à utiliser une formule de tableau.

7
7
7
2010-09-17 14:16:02 +0000

J'ai trouvé une solution ici ce qui semble être une incroyable façon détournée de le résoudre. Mais bon, ça marche…

=SUM(IF(COUNTIF(A2:A100,A2:A100)=0, “”, 1/COUNTIF(A2:A100,A2:A100))

et appuyez ensuite sur Ctrl+Maj+Entrée. Si vous appuyez uniquement sur la touche Entrée, vous obtiendrez un résultat erroné.

1
1
1
2013-05-02 05:42:13 +0000

=SUM(1/COUNTIF(A2:A100;A2:A100))

Confirmer avec Ctrl+Shift+Enter

Pour chaque cellule, il compte combien de fois elle se produit, et additionne les inverses de toutes ces valeurs. Supposons qu'une chaîne ou un nombre se produise 5 fois. Son inverse est 0.2 qui est additionné 5 fois, donc 1 est ajouté. À la fin, on obtient le nombre de valeurs différentes.

**Note : ne fonctionne pas lorsque des blancs apparaissent !

1
1
1
2010-09-17 15:08:28 +0000

J'ai trouvé deux ressources pour vous : http://www.excelforum.com/excel-worksheet-functions/365877-count-distinct-values.html

et http://www.cpearson.com/excel/Duplicates.aspx

Vous devriez être en mesure de trouver une solution viable à partir de là.

1
1
1
2010-09-17 15:10:55 +0000

Cet article le montre pour les valeurs de texte :

=SUM(IF(FREQUENCY(IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""), IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""))>0,1))

et ceci pour les valeurs numériques :

=SUM(IF(FREQUENCY(C3:C25, C3:C25)>0,1))

Cet article présente des formules similaires, mais montre également une méthode utilisant des filtres.

Comptez le nombre de valeurs uniques en utilisant un filtre

Vous pouvez utiliser le filtre avancé pour extraire les valeurs uniques d'une colonne de données et les coller à un nouvel emplacement. Ensuite, vous pouvez utiliser la fonction ROWS pour compter le nombre d'éléments dans la nouvelle plage.

  1. Assurez-vous que la première ligne de la colonne comporte un en-tête de colonne.
  2. Dans le menu Données, pointez sur Filtre, puis cliquez sur Filtre avancé.
  3. dans la boîte de dialogue Filtre avancé, cliquez sur Copier à un autre endroit.
  4. Si la plage que vous comptez n'est pas déjà sélectionnée, supprimez toute information dans la zone Liste des plages, puis cliquez sur la colonne (ou sélectionnez la plage) qui contient vos données.
  5. dans la case Copier vers, supprimez toute information dans la case ou cliquez dans la case, puis cliquez sur une colonne vide où vous voulez copier les valeurs uniques.
  6. Cochez la case Enregistrements uniques uniquement, et cliquez sur OK.

  7. Dans la cellule vide située sous la dernière cellule de la plage, entrez la fonction ROWS. Utilisez la plage de valeurs uniques que vous venez de copier comme argument. Par exemple, si la plage de valeurs uniques est B1:B45, alors entrez :
    =ROWS(B1:B45)

0
0
0
2013-07-02 11:56:27 +0000

Essayez ce lien. Il montre comment compter des valeurs uniques dans une liste en omettant les cellules vides. http://www.functioninexcel.com/lists-arrays/count-unique-values-in-a-list/

= somme( if( fréquence( match( List , List , 0 ) , match( List , List , 0 )) > 0 , 1 ))

Où “Liste” est votre plage de cellules, par exemple :

Liste = $A$2:$A$12 OU- Liste = décalage($A$1,,,match( rept(“z”,255) , $A:$A )) -OR- Liste = offset($A$1,,,match( value(rept(“9”,255)) , $A:$A ))

0
0
0
2013-08-03 23:06:09 +0000

=SOMME(IF(FREQUENCY(IF(SUBTOTAL(3,OFFSET(A2:A100,ROW(A2:A100)-ROW(A2),0,1)),MATCH(“~”&A2:A100,A2:A100&“”,0)),ROW(A2:A100)-ROW(A2)+1),1))

Assurez-vous d'appuyer sur CONTROL+SHIFT+ENTER après avoir collé cette formule. Ceci est pour une plage de A2:A100, ajustez la plage en conséquence.