Compter le nombre d'occurences selon critère

Bonjour à tous,

Pour compter le nombre d'occurences différentes dans une plage A25:A66, j'utilise la formule suivante qui fonctionne parfaitement:

=SOMMEPROD(((A25:A66<>"")/NB.SI(A25:A66;A25:A66&"")))

Je souhaiterais ajouter une condition à la formule pour que le comptage ne soit effectif que si la plage H25:H66 contient une certaine valeur, qui sera variable en Y4.

J'ai essayé d'ajouter =NB.SI(H25:H66;Y4) à la formule précédente mais impossible d'obtenir le résultat.

Je vous remercie pour votre aide.

dul.

Bonjour,

=SOMMEPROD(((A25:A66<>"")*(H25:H66=$Y$4)/NB.SI(A25:A66;A25:A66&"")))

Bonjour Steelson,

je te remercie pour ton aide, malheureusement ça ne fonctionne pas, la formule renvoie une valeur décimale.

voilà le fichier en PJ avec ta formule en Y6

dul.

25essai-comptage.xlsx (28.13 Ko)

Bonsoir le forum,

=NB(1/FREQUENCE(SI(H25:H66=Y4;EQUIV(A25:A66;A25:A66;0));LIGNE(INDIRECT("1:"&LIGNES(A1:A66)))))

Formule matricielle.

je te remercie pour ton aide, malheureusement ça ne fonctionne pas, la formule renvoie une valeur décimale.

exact, désolé, avec le fichier ce sera plus "facile" à mettre au point ... encore que ce n'est pas coton

mbbp = bravo, mais la difficulté provient du 8 orphelin sans nom devant et qui renvoie dans ce cas un 0

je suis donc passé in fine par une fonction personnalisée

Option Explicit

Function NbSiUnique(plage1 As Range, plage2 As Range, crit As Range) As Integer
    Dim dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    Dim tmpRange1() As Variant, tmpRange2() As Variant, i As Integer
    tmpRange1 = plage1: tmpRange2 = plage2
    If UBound(tmpRange1) <> UBound(tmpRange2) Then Exit Function
    NbSiUnique = 0
    For i = 1 To UBound(tmpRange1)
        If tmpRange2(i, 1) = crit.Value And tmpRange1(i, 1) <> "" Then dico(tmpRange1(i, 1)) = ""
    Next i
    NbSiUnique = 1 + UBound(dico.keys)
End Function
18essai-comptage.xlsm (16.16 Ko)

Bonjour à toutes et tous,

@dul,

Une proposition par formule matricielle:

=SOMME(SI((H25:H66=Y4)*(A25:A66<>"");1/NB.SI.ENS(H25:H66;Y4;A25:A66;A25:A66)))

A valider avec ctrl + maj + entrée

Cordialement.

Bonjour,

Merci à tous pour pour votre aide, je vais utiliser la formule matricielle de mdo 100 qui fonctionne même en cas de cellule vide. Je n'ai pas réussi à utiliser la fonction proposée par Steelson, scripting.dictionary n'étant pas compatible avec la version mac.

Dul

merci pour ce retour en ce qui me concerne

Bonjour dul, Steelson,

Tout pareil, merci du retour

Et merci à Steelson, pour cette Fonction Personnalisée, que je n'aurais pas su faire et que je classe dans mes archives.

Bonne fin de canicule à toutes et tous

Rechercher des sujets similaires à "compter nombre occurences critere"