Dans une feuille de calcul Google: comment puis-je compter les lignes d'une zone donnée qui ont une valeur? Tous les indices à ce sujet que j'ai trouvés jusqu'à présent mènent à des formules qui comptent les lignes qui ont un contenu non vide (y compris la formule), mais une cellule avec
=IF(1=2;"";"") // Shows an empty cell
est également compté.
Quelle est la solution à cette tâche simple?
Réponses:
Créez une autre colonne qui détermine si la cellule référencée est vide à l'aide de la fonction "CountBlank". Ensuite, utilisez le décompte des valeurs créées dans la nouvelle colonne "CountBlank".
la source
Je viens de l'utiliser
=COUNTIF(Range, "<>")
et il a compté les cellules non vides pour moi.la source
=COUNTIF(Range,"?*")
counta
: "Renvoie un décompte du nombre de valeurs dans un ensemble de données"Remarque:
CountA
considère""
comme une valeur . Seules les cellules vides (appuyez sur Supprimer dans une cellule pour la vider) ne sont pas comptées.Assistance Google: https://support.google.com/docs/answer/3093991
countblank
: "Renvoie le nombre de cellules vides dans une plage donnée"Note:
CountBlank
considère les cellules vides (appuyez sur SUPPR pour une cellule vide) et les cellules qui ont une formule qui renvoie""
à être vides cellules.Assistance Google: https://support.google.com/docs/answer/3093403
Si vous avez une plage qui inclut des formules qui aboutissent
""
, vous pouvez modifier votre formule à partir deà:
EDIT: la fonction est
countblank
, noncountblanks
, cette dernière donnera une erreur.la source
Voici ce que je pense être la meilleure solution à ce jour:
Voici pourquoi en 3 étapes faciles
Étape 1: Simple As Pie - Ajouter une colonne supplémentaire
La réponse d'eniacAvenger donnera la bonne solution sans se soucier des cas de bord, car il
=A1<>""
semble arriver à la valeur de vérité / falsification correcte en fonction de la façon dont nous pensons intuitivement aux cellules vides, que ce soit des blancs vierges ou des blancs créés.Alors imaginez que nous avons ces données et que nous voulons le nombre de non-blancs dans
B2:B6
:Si nous nous appuyions sur la colonne C , nous pourrions obtenir le nombre de valeurs dans B comme ceci:
Étape 2: Utilisez
FormulaArray
pour créer dynamiquement une colonne supplémentaireCependant, le commentaire de consideRatio est valide - si vous avez besoin d'une colonne supplémentaire, vous pouvez souvent atteindre le même objectif avec un
ArrayFormula
qui peut créer une colonne en mémoire sans manger d'espace sur la feuille.Donc, si nous voulons créer C dynamiquement, nous pouvons utiliser une formule matricielle comme celle-ci:
Si nous le mettons simplement en C2, cela créerait le tableau vertical avec un seul trait de plume:
Étape 3: Compter les valeurs dans la colonne dynamique
Mais avec cela résolu, nous n'avons plus besoin de la colonne pour simplement afficher les valeurs.
ArrayFormula
résoudra à la plage suivante:{True,True,False,True,False}
.CountIf
prend juste dans n'importe quelle plage et dans ce cas peut compter le nombre de valeurs True.Nous pouvons donc envelopper
CountIf
les valeurs produites parArrayFormula
comme ceci:Lectures complémentaires
Les autres solutions de ce fil sont soit trop complexes, soit échouent dans des cas particuliers que j'ai énumérés dans cette feuille de test:
Feuille de calcul Google - Test CountA - Démo
Pour savoir pourquoi cela
CountA
fonctionne de la manière bancale, voir ma réponse icila source
ArrayFormula(...)
pour renvoyer le tableau de valeurs à l'intérieur deCountIf
comme vous l'avez suggéré. J'ai mis à jour la réponse et la démo de la feuille de calcul. Ils feront tous les deux la même chose, mais la propreté est à côté de la bonté.Pour moi, aucune des réponses n'a fonctionné pour les plages qui incluent à la fois des cellules vierges et des cellules vides basées sur une formule (par exemple
=IF(1=2;"";"")
)Voici ce qui a résolu le problème pour moi:
=COUNTA(FILTER(range, range <> ""))
la source
Filter()
ne trouve aucun élément, il retournera#N/A
quiCOUNTA()
traite comme un élément et retournera donc toujours 1, même si le nombre doit être zéro. Exemple dans Google Sheets=COUNTA(filter({1;range},{1;range}<>"")) - 1
Résolu à l'aide d'une solution que j'ai trouvée sur Google par Yogi Anand: https://productforums.google.com/d/msg/docs/3qsR2m-1Xx8/sSU6Z6NYLOcJ
L'exemple ci-dessous compte le nombre de lignes non vides dans la plage A3: C, n'oubliez pas de mettre à jour les deux plages de la formule avec votre plage d'intérêt.
Veillez également à éviter les dépendances circulaires, cela se produira si vous comptez par exemple le nombre de lignes non vides dans A: C et placez cette formule dans la colonne A ou C.
la source
C'est du travail pour moi:
Nombre de toutes les cellules non vides de F2 à la fin de la colonne
la source
Compte tenu de la gamme
A:A
, Id suggère:Le problème est que COUNTA sur-compte exactement le nombre de cellules avec des chaînes de longueur nulle
""
.La solution est de trouver exactement ces cellules. Cela peut être trouvé en recherchant toutes les cellules de texte et en soustrayant toutes les cellules de texte avec au moins un caractère
""
mais excluant les cellules vraiment vides""
mais excluant les cellules vraiment videsCela signifie que la valeur
COUNTIF(A:A,"*")-COUNTIF(A:A,"?*")
doit être le nombre de cellules de texte moins le nombre de cellules de texte qui ont au moins un caractère, c'est-à-dire le nombre de cellules contenant exactement""
la source
Une solution plus simple qui fonctionne pour moi:
Il compte à la fois les nombres, les chaînes, les dates, etc. qui ne sont pas vides
la source
Autant que je puisse voir, la plupart des solutions ici comptent le nombre de cellules non vides, et non le nombre de lignes avec une cellule non vide à l'intérieur.
Une solution possible pour la gamme
B3:E29
est par exempleIci
ArrayFormula(IF(B3:B29&C3:C29&D3:D29&E3:E29="";0;1))
renvoie une colonne de0
(si la ligne est vide) et1
(sinon).Un autre est donné dans la réponse de consideRatio .
la source
Vous pouvez définir une fonction personnalisée à l'aide d'Apps Script (Outils> Éditeur de script) appelée par exemple
numNonEmptyRows
:Et puis utilisez-le dans une cellule comme celle-ci
=numNonEmptyRows(A23:C25)
pour compter le nombre de lignes non vides dans la plageA23:C25
;la source
Dans Google Sheets, pour compter le nombre de lignes contenant au moins une cellule non vide dans une plage à deux dimensions :
Où A1: C5 est la plage que vous recherchez pour les lignes non vides.
La formule provient de, et est expliquée dans l'article suivant d'EXCELXOR - https://excelxor.com/2015/03/30/counting-rows-where-at-least-one-condition-is-met/
la source
Une manière très flexible de faire ce genre de choses est d'utiliser ARRAYFORMULA.
À titre d'exemple, imaginez que vous souhaitez compter les chaînes non vides (champs de texte), vous pouvez utiliser ce code:
Ce qui se passe ici, c'est que "ArrayFormula" vous permet d'opérer sur un ensemble de valeurs. En utilisant la fonction SOMME, vous indiquez "ArrayFormula" pour additionner toute valeur de l'ensemble. La clause "If" sert uniquement à cocher "vide" ou "non vide", 1 pour non vide et 0 sinon. "Len" renvoie la longueur des différents champs de texte, c'est là que vous définissez l'ensemble (plage) que vous souhaitez vérifier. Enfin, "ArrayFormula" fera la somme de 1 pour chaque champ à l'intérieur de l'ensemble (plage) dans lequel "len" renvoie plus de 0.
Si vous souhaitez vérifier une autre condition, modifiez simplement le premier argument de la clause IF.
la source