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.
Avec les formules, vous pouvez:
D2
), ajoutez =COUNTA(A2:C2)
D4
dans notre exemple)D5
): =SUM(D2:D4)
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
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.
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
.
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.
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.