Accueil › Fonctions Excel › SOMMEPROD
Fonction SOMMEPROD dans Excel, avec des exemples
SOMMEPROD multiplie des plages ligne par ligne et additionne les résultats. Quantité × prix pour toute une commande dans une seule cellule, c'est l'usage classique, mais SOMMEPROD additionne et compte aussi avec des conditions, y compris la logique OU que SOMME.SI.ENS ne sait pas faire. Dans l'Excel en anglais, la fonction s'appelle SUMPRODUCT.
Dans ce guide
Syntaxe de SOMMEPROD
=SOMMEPROD(matrice1; [matrice2]; [matrice3]; …)Toutes les matrices doivent avoir la même taille. Excel multiplie les premières valeurs de chaque matrice, puis les deuxièmes, et ainsi de suite, et renvoie le total.
Exemple simple : le total d'une commande
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Produit | Qté | Prix | Région |
| 2 | Stylos | 10 | 1,50 | Nord |
| 3 | Cahiers | 4 | 3,25 | Sud |
| 4 | Chemises | 6 | 2,00 | Nord |
| 5 | Feutres | 8 | 1,75 | Est |
| 6 | Agrafeuses | 2 | 7,50 | Sud |
Excel calcule 10×1,50 + 4×3,25 + 6×2,00 + 8×1,75 + 2×7,50 = 15 + 13 + 12 + 14 + 15 = 69. Sans SOMMEPROD, il vous faudrait une colonne intermédiaire avec =B2*C2, puis une SOMME.
S'exercer avec SOMMEPROD : essayez vous-même
Lire est une chose, taper la formule en est une autre. Construisez la formule ci-dessous pas à pas : les indications vous disent quoi taper, et vous pouvez cliquer sur les cellules ou faire glisser dessus pour les ajouter, comme dans Excel.
Exercice: Calculez en D2 la valeur totale de la commande (quantité fois prix): =SOMMEPROD(A2:A5;B2:B5)
Additionner avec une condition
Mettez une comparaison entre parenthèses. Elle renvoie VRAI ou FAUX pour chaque ligne, et la multiplication les transforme en 1 et 0. Les lignes qui ne correspondent pas sont multipliées par 0 et disparaissent du total.
=SOMMEPROD((D2:D6="Nord") * B2:B6 * C2:C6)Seuls les stylos et les chemises sont du Nord : 15 + 12 = 27.
Ajoutez des conditions en multipliant d'autres parenthèses : (D2:D6="Sud") * (B2:B6>3) signifie Sud et plus de 3.
Compter avec des conditions
Retirez les valeurs, et SOMMEPROD compte les lignes où toutes les conditions sont vraies :
=SOMMEPROD((D2:D6="Sud") * (B2:B6>3))Seuls les cahiers sont du Sud avec une quantité supérieure à 3 : le résultat est 1. NB.SI.ENS donne la même chose ici, mais SOMMEPROD accepte aussi des calculs dans la condition, comme (MOIS(A2:A100)=3) pour compter tout ce qui tombe en mars.
Conditions OU
Multiplier signifie ET. Additionner deux conditions signifie OU :
=SOMMEPROD(((D2:D6="Nord") + (D2:D6="Est")) * B2:B6)Cette formule additionne les quantités du Nord ou de l'Est : 10 + 6 + 8 = 24. Gardez les parenthèses supplémentaires autour de la partie OU ; sinon, la multiplication ne porte que sur la deuxième condition.
Moyenne pondérée
Quel est le prix moyen par article en tenant compte des quantités ? Divisez SOMMEPROD par la quantité totale :
=SOMMEPROD(B2:B6; C2:C6) / SOMME(B2:B6)69 / 30 = 2,30. Une simple MOYENNE des prix donnerait 3,20, parce qu'elle traite les 2 agrafeuses comme les 10 stylos.
Erreurs fréquentes avec SOMMEPROD
- #VALEUR! Les plages n'ont pas la même taille, comme B2:B6 et C2:C7.
- Le résultat est 0 avec une condition. Vous avez mis un séparateur entre une condition et une plage :
SOMMEPROD((D2:D6="Nord"); B2:B6)Les valeurs VRAI/FAUX comptent pour 0 si vous ne les multipliez pas. Utilisez*ou mettez--devant la condition. - Classeur lent. Évitez les colonnes entières comme
A:A: SOMMEPROD calcule alors sur plus d'un million de lignes.
Questions fréquentes
Quelle est la différence entre SOMMEPROD et SOMME.SI.ENS ?
SOMME.SI.ENS est plus rapide et plus simple pour des conditions ET simples. SOMMEPROD est plus souple : elle accepte la logique OU, des calculs dans les conditions et la multiplication de colonnes avant l'addition.
Faut-il Ctrl+Maj+Entrée pour SOMMEPROD ?
Non. SOMMEPROD travaille avec des matrices toute seule, même dans les anciennes versions d'Excel.
SOMMEPROD peut-elle compter des valeurs uniques ?
Oui : =SOMMEPROD(1/NB.SI(A2:A10; A2:A10)) compte les valeurs distinctes d'une liste sans cellules vides. Lisez comment compter des valeurs uniques.
À quoi sert le double signe moins (--) ?
Il transforme VRAI et FAUX en 1 et 0 : =SOMMEPROD(--(A2:A10="Oui")) compte donc les cellules qui contiennent Oui.