Distinct count selon des critères

Bonjour à tous,

Voici mon problème, je n'arrive pas à trouver les formules adéquat à mon problèmes.

Actuellement j'ai une base de données et je cherche à pouvoir faire un distinct count en fonction de plusieurs critères de différentes colonnes de la base de données, puis la valeur que représente le distinct count.

Vous trouverez l'excel avec les indications de mon problèmes (les 3 formules que je cherche > j'ai mis manuellement les réponses pour avoir une idée de ce que je cherche)

Je sais qu'avec un Tableau croisé dynamique aurait fait l'affaire, mais il me faut faire à travers des formules :)

PS: le fichier a été simplifier et sans les valeurs réelles

Cordialement,

Rizo

Bonjour,

Il faudrait savoir combien vous avez de lignes de données dans votre tableau mais à titre d'exemple pour le Tableau 1 (S), mettez ces formules

- En N22 --> =SOMMEPROD(($B$5:$B44="BBQ")*($C$5:$C44=$M22)*($E$5:$E44="OUI")*($F$5:$F44="S"))
- En O22 --> =SOMMEPROD(($B$5:$B44="BBQ")*($C$5:$C44=$M22)*($E$5:$E44="OUI")*($F$5:$F44="S")*($G$5:$G44))
- En P22 --> =SOMMEPROD(($B$5:$B44="BBQ")*($C$5:$C44=$M22)*($E$5:$E44="OUI")*($F$5:$F44="S")*($H$5:$H44))

Tirer les formules vers le bas pour les autres lignes
Recopier les formules pour les autres tableaux en adaptant la ligne de la colonne M

Edit : Autre solution qui prendra moins de ressources mémoire que la fonction SOMMEPROD (qui est une formule de type matricielle) :

N22 --> =NB.SI.ENS($B$5:$B44;"BBQ";$C$5:$C44;$M22;$E$5:$E44;"OUI";$F$5:$F44;"S")
O22 --> =SOMME.SI.ENS($G$5:$G44;$B$5:$B44;"BBQ";$C$5:$C44;$M22;$E$5:$E44;"OUI";$F$5:$F44;"S")
P22 --> =SOMME.SI.ENS($H$5:$H44;$B$5:$B44;"BBQ";$C$5:$C44;$M22;$E$5:$E44;"OUI";$F$5:$F44;"S")

Bonjour,

Bonjour Dan

une proposition en VBA

Private Sub Workbook_SheetActivate(ByVal sh As Object)
    If sh.Name <> "data" And Left(sh.Name, 5) <> "Feuil" And Left(sh.Name, 5) <> "Sheet" Then
        filtrer sh
    End If
End Sub

Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
    If Intersect(Target, sh.Range("A3").CurrentRegion) Is Nothing Then Exit Sub
    filtrer sh
End Sub

Sub filtrer(sh)
    Sheets("data").Cells(Rows.Count, 2).End(xlUp).CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=sh.Range("A3").CurrentRegion, _
        CopyToRange:=sh.Range("A6").CurrentRegion.Resize(1), Unique:=False
End Sub
Rechercher des sujets similaires à "distinct count criteres"