Somme multi-critères (ou, ou)

Bonjour à tous,

Je suis à la recherche d'une technique / fonction pour additionner des valeurs en fonction de plusieurs critères, mais selon la règle OU, OU.

Exemple : le nombre de clients qui passé au moins 10 commandes, ou passé pour 20'000 euros de commandes.

A cet effet, j'ai créé le petit fichier Excel ci-joint qui permettra, je l'espère, de pouvoir mieux cerner la problématique,

J'ai regardé avec les fonctions somme.si, somme.si.ens et bdsomme, mais aucune de ces fonctions ne répond à mon besoin. En effet, ces fonctions permettent d'avoir des critéres multiples simultané (ET, ET).

Par avance, un grand merci pour votre aide.

Bonjour,

une manière de faire et qui pourrait s'adapter en VBA

critères à côté = ET

critères en dessous = OU

P.

bonjour,

Voir piece jointe pour une solution alternative avec l'utilisation des formules matricielles.

cordialement

Bonsoir,

Essai fonction personnalisée (c'est dans le vent ! )

Function SOMNBOU(pl1 As Range, cd1, pl2 As Range, cd2, Optional plS As Range)
    Dim nbs, n%, i%, S As Boolean
    Application.Volatile
    If pl1.Rows.Count <> pl2.Rows.Count Or pl1.Columns.Count <> pl2.Columns.Count Then
        SOMNBOU = CVErr(xlErrValue)
        Exit Function
    ElseIf pl1.Rows.Count = 1 Or pl1.Columns.Count = 1 Then
        n = IIf(pl1.Columns.Count > pl1.Rows.Count, pl1.Columns.Count, pl1.Rows.Count)
        If Not plS Is Nothing Then
            If plS.Rows.Count = pl1.Rows.Count And plS.Columns.Count = pl1.Columns.Count Then
                S = True
            Else
                SOMNBOU = CVErr(xlErrValue)
                Exit Function
            End If
        End If
    Else
        SOMNBOU = CVErr(xlErrValue)
        Exit Function
    End If
    cd1 = Replace(cd1, ",", "."): cd2 = Replace(cd2, ",", ".")
    If Not cd1 Like "[><=]*" Then cd1 = "=" & cd1
    If Not cd2 Like "[><=]*" Then cd2 = "=" & cd2
    For i = 1 To n
        If Evaluate("=" & pl1.Cells(i) & cd1) Or Evaluate("=" & pl2.Cells(i) & cd2) Then
            If S Then
                nbs = nbs + plS.Cells(i)
            Else
                nbs = nbs + 1
            End If
        End If
    Next i
    SOMNBOU = nbs
End Function

La fonction renvoie soit une somme de valeurs soit un nombre de valeurs satisfaisant l'une ou l'autre (ou les deux) de deux conditions. Elle admet 5 arguments dont un optionnel.

Dans l'ordre : la plage sur laquelle est recherchée la condition 1, la condition 1, la plage sur laquelle est recherchée la condition 2, la condition 2, et enfin la plage sur laquelle s'effectue la somme des valeurs, ce dernier argument est optionnel, s'il est omis la fonction renvoie le nombre de valeurs.

Les conditions sont formulées de façon habituelle sous forme de chaîne intégrant des opérateurs de comparaison (>, >=, <, <=, =) ou non (l'absence d'opérateur équivaut à rechercher l'égalité).

Les plages doivent être sur une seule colonne ou une seule ligne et avoir le même nombre de lignes ou colonnes.

Cordialement.

Merci beaucoup pour vos Inputs.

Je vais tester les differentes variantes et voir laquelle me conviendrait le mieux dans mon cas.

Excellente journée à chacun.

Bonjour,

La solution avec l'utilisation des formules matricielle est ma préférée, encore un grand merci, je ne connaissais pas du tout cette fonctionnalité et je terminerai la journée en ayant appris quelque chose.

Mais mon problème n'est pas encore totalement résolu. Je souhaite en effet ajouter une condition supplémentaire à ma requête.

Exemple : Nombre de clients ayant passé entre 10 et 20 commandes, ou ayant pour plus de 100'000 euros de commande.

J'ai essayé de bricoler la formule matricielle en ajoutant une condition "ET" avant la première matrice, mais ça ne fonctionne pas, le résultat donné , mais je peine.

Voici la formule que j'ai saisie (j'ai remplacé mon tableau par A1:A10, B1:B10, C1:C10)

{=SOMME(SI(((ET(A1:A10>=10;A1:A10<20)+(B1:B10>=100000));C1:C10))}

Voici un fichier exemple (le fichier de sakman26), avec les nouvelles conditions.

Si quelqu'un pouvait m'aider, ce serait super.

Merci d'avance, et excellente fin de journée.

Cordialement.

bonjour

voir la piece jointe.

cordialement

Bonjour,

A partir de vos données , le fichier en annexe est un peu généralisé avec l'utilisation des définitions des noms.

La structure est en Dynamique. Après avoir sélectionné les critères à evaluer , le resultat sera calculé et la liste correspondantes sera établie automatiquement.

Examiner ce fichier qui est en annexe.

40gentest.xlsx (55.43 Ko)

Fantastique, un grand merci pour votre aide. Ca fonctionne parfaitement avec mon tableau de 72'000 lignes.

Excellente journée.

Rechercher des sujets similaires à "somme multi criteres"