web-dev-qa-db-fra.com

Comment puis-je compter les lignes avec des données dans une feuille Excel?

J'essaie de compter le nombre de lignes dans une feuille de calcul qui contiennent au moins une valeur non vide sur quelques colonnes: i.e.

row 1 has a text value in column A
row 2 has a text value in column B
row 3 has a text value in column C
row 4 has no values in A, B or C

La formule équivaudrait à 3, car les lignes 1, 2 et 3 ont une valeur de texte dans au moins une colonne. De même, si la ligne 1 avait une valeur de texte dans chaque colonne (A, B et C), cela serait compté comme 1.

11
David

Avec les formules, vous pouvez:

  • dans une nouvelle colonne (disons col D - cellule D2), ajoutez =COUNTA(A2:C2)
  • faites glisser cette formule jusqu'à la fin de vos données (disons la cellule D4 dans notre exemple)
  • ajouter une dernière formule pour le résumer (par exemple dans la cellule D5): =SUM(D2:D4)
16
JMax

Si vous voulez un simple liner qui fera tout pour vous (en supposant sans valeur que vous voulez dire une cellule vide):

=(ROWS(A:A) + ROWS(B:B) + ROWS(C:C)) - COUNTIF(A:C, "")

Si, sans valeur, vous voulez dire que la cellule contient un 0

=(ROWS(A:A) + ROWS(B:B) + ROWS(C:C)) - COUNTIF(A:C, 0)

La formule fonctionne en additionnant d'abord toutes les lignes qui se trouvent dans les colonnes A, B et C (si vous devez compter plus de lignes, augmentez simplement les colonnes de la plage. Par exemple ROWS(A:A) + ROWS(B:B) + ROWS(C:C) + ROWS(D:D) + ... + ROWS(Z:Z)).

Ensuite, la formule compte le nombre de valeurs dans la même plage qui sont vides (ou 0 dans le deuxième exemple).

Enfin, la formule soustrait le nombre total de cellules sans valeur du nombre total de lignes. Cela vous laisse avec le nombre de cellules dans chaque ligne qui contiennent une valeur

2
Jason McKindly

Si cela ne vous dérange pas VBA, voici une fonction qui le fera pour vous. Votre appel serait quelque chose comme:

=CountRows(1:10) 
Function CountRows(ByVal range As range) As Long

Application.ScreenUpdating = False
Dim row As range
Dim count As Long

For Each row In range.Rows
    If (Application.WorksheetFunction.CountBlank(row)) - 256 <> 0 Then
        count = count + 1
    End If
Next

CountRows = count
Application.ScreenUpdating = True

End Function

Comment ça marche: j'exploite le fait qu'il y a une limite de 256 lignes. La formule de la feuille de calcul CountBlank vous indiquera combien de cellules d'une ligne sont vides. Si la ligne n'a pas de cellules avec des valeurs, ce sera 256. Donc, je viens de moins 256 et si ce n'est pas 0, je sais qu'il y a une cellule quelque part qui a une certaine valeur.

1
aevanko

Essayez ce scénario:

Tableau = A1:C7. A1-A3 Ont des valeurs, B2-B6 Ont une valeur et C1, C3 Et C6 Ont des valeurs.

Pour obtenir un décompte du nombre de lignes, ajoutez une colonne D (vous pouvez la masquer une fois les formules définies) et dans D1, Mettez la formule =If(Sum(A1:C1)>0,1,0). Copiez la formule de D1 À D7 (Pour les autres personnes qui ne maîtrisent pas Excel, les chiffres de la formule de somme changeront pour la ligne sur laquelle vous vous trouvez et cela ne pose aucun problème).

Maintenant dans C8 Faites une formule de somme qui additionne la colonne D et la réponse devrait être 6. À des fins visuellement agréables, masquez la colonne D.

0
Mike Feeney

C'est ce que j'ai finalement trouvé, qui fonctionne très bien!

{=SUM(IF((ISTEXT('Worksheet Name!A:A))+(ISTEXT('CCSA Associates'!E:E)),1,0))-1}

N'oubliez pas que c'est un tableau pour taper la formule ci-dessus sans le "{}", et pour CTRL + MAJ + ENTRER au lieu de simplement ENTRER pour que le "{}" apparaisse et pour qu'il soit entré correctement.

0
Tanima

Vous devez utiliser la fonction sumif dans Excel:

=SUMIF(A5:C10;"Text_to_find";C5:C10)

Cette fonction prend une plage comme ce carré A5: C10 puis vous avez du texte pour trouver que ce texte peut être en A ou B puis il ajoutera le numéro de la ligne C.