2009-04-21 7 views

Répondre

91

Utilisez un critère de "<>". Il comptera tout ce qui n'est pas une cellule vide, y compris #NAME? ou #DIV/0!. Quant à savoir pourquoi cela fonctionne, damné si je sais, mais Excel semble le comprendre.

Note: fonctionne bien dans Google Spreadsheet trop

+0

J'ai essayé cela moi-même et j'ai découvert que cela fonctionnait, mais comme vous le dites aussi - cela n'a aucun sens pourquoi Excel l'accepte. J'ai dû ajouter un autre critère pour éviter les 0 que montrent mes vlookups. – Kim

+4

Note: fonctionne bien dans Google Docs aussi – LeonardChallis

+0

Wow! Cette réponse est toujours une bouée de sauvetage 7 ans plus tard - et contient des informations que je ne peux pas trouver dans les documents Microsoft. Merci!! – AAT

6

Si vous utilisez plusieurs critères, et que vous voulez compter le nombre de cellules non vides dans une colonne particulière, vous voulez probablement regarder DCOUNTA.

par exemple

A B C D E F G 
1 Dog Cat Cow Dog Cat 
2 x 1   x 1 
3 x 2 
4 x 1 nb  Result: 
5 x 2 nb  1 

formule dans E5: = BDNBVAL (A1: C5, "vache", E1: F2)

+1

C'est une bien meilleure option que la réponse acceptée. Pourquoi vous utiliseriez un Vlookup avec IF est au-delà de moi quand vous voulez compter. Décompte est ton ami. Encore si vous aimez les grandes formules chunky utilisez l'autre réponse. –

8

Dans Excel 2010, vous avez la fonction NB.SI.ENS. J'ai eu des problèmes si j'essayais de compter le nombre de cellules dans une gamme qui ont une valeur non 0.

par exemple. Si vous aviez une feuille de calcul dans la plage A1: A10 avait les valeurs 1, 0, 2, 3, 0 et que vous vouliez la réponse 3.

La fonction normale = COUNTIF (A1: A10, "<> 0") vous donner 8 comme il compte les cellules vides comme 0s.

Ma solution à ceci est d'utiliser la fonction COUNTIFS avec la même plage mais plusieurs critères, par ex.

= NB.SI.ENS (A1: A10, "<> 0" , A1: A10," <> ")

Ceci vérifie efficacement si la plage est non 0 et est non vide.

17

Si plusieurs critères utilisent NB.SI.ENS

=countifs(A1:A10,">""",B1:B10,">""") 

Le " >"" " regarde plus que d'être vide. Cette formule recherche deux critères et aucune des deux colonnes ne peut être vide sur la même ligne pour pouvoir compter. Si vous ne faites que compter une colonne, faites-le avec le seul critère (c.-à-d.Utilisez tout avant B1:B10 ne comprenant pas la virgule)

+1

en utilisant ">" "" est un truc génial! – ak112358

+0

Ceci est utile car il y a des cas où une cellule apparemment vide ne sera pas exclue par '" <> "', mais le sera en utilisant '"> "" "'. –

+1

La solution ">" "" est parfaite. Le problème avec "<>" est qu'il compte les cellules qui ont une formule même si elle donne une valeur vide (comme si vous utilisez IFERROR, par exemple), alors que ">" "" semble fonctionner pour la valeur calculée de la cellule au lieu du contenu. – JoeP

0

La meilleure façon que j'ai trouvé est d'utiliser une combinaison « IF » et déclaration « ESTERREUR »:

=IF(ISERROR(COUNTIF(E5:E356,1)),"---",COUNTIF(E5:E356,1) 

Cette formule soit remplir la cellule avec trois tirets (---) s'il y aurait une erreur (s'il n'y a pas de données dans les cellules à compter/moyenne/etc), ou avec le compte (s'il y avait des données dans les cellules)

cette requête logique est qu'il va exclure entièrement les lignes/colonnes vides en les rendant les valeurs textuelles de "---", donc si vous avez un comptage de lignes (ou de calcul de la moyenne), qui était puis compté (ou moyenné) dans un autre endroit de votre formule, la deuxième formule ne répondra pas avec une erreur car elle ignorera la cellule "---".

3

Vous pouvez essayer ceci:

=COUNTIF(Data!A2:A300,"<>"&"") 
3

Je trouve que la meilleure façon de le faire est d'utiliser à la place SUMPRODUCT:

=SUMPRODUCT((A1:A10<>"")*1) 

Il est également assez grand si vous voulez jeter plusieurs critères :

=SUMPRODUCT((A1:A10<>"")*(A1:A10>$B$1)*(A1:A10<=$B$2)) 
+0

Cela fonctionne également avec les formules qui renvoient "". – CFreitas

Questions connexes