Menu

SOMMEPROD Excel : multiplier et additionner (SUMPRODUCT)

=SOMMEPROD(B2:B6;C2:C6) multiplie chaque quantité par son prix et additionne les résultats. Avec des conditions comme (A2:A7="North")*C2:C7, elle additionne et compte là où SOMME.SI.ENS ne peut pas : par mois, colonne contre colonne, avec OU.

Chaque feuille de cette page est interactive : modifiez un nombre ou une formule et elle se recalcule.

=SOMMEPROD(B2:B6;C2:C6) multiplie chaque quantité de B par le prix voisin en C, puis additionne les résultats. Elle donne le total de la commande dans une seule cellule, sans colonne de totaux par ligne. SOMMEPROD s'appelle SUMPRODUCT dans un Excel anglais ; le tableau affiche les formules sous cette forme, avec des virgules, mais vous pouvez aussi les taper comme dans un Excel français, avec des points-virgules : =SOMMEPROD(B2:B6;C2:C6).

Total de la commande
F2
ABCDEF
1ItemQtyPriceLine totalTotal
2Pen4$1.50$6.00$30.70
3Notebook2$3.25$6.50$30.70
4Folder5$0.80$4.00
5Stapler1$7.90$7.90
6Marker3$2.10$6.30
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =SOMMEPROD(B2:B6;C2:C6)

F2 et F3 affichent le même $30.70. Les totaux par ligne de la colonne D ne sont là que pour montrer ce que fait SOMMEPROD : 4 × 1,50, 2 × 3,25, et ainsi de suite, puis une SOMME. Modifiez une quantité et les deux totaux suivent.

Syntaxe de SOMMEPROD

=SUMPRODUCT(array1, [array2], [array3], ...)
  • Chaque matrice est une plage ou un calcul qui en produit une, et toutes doivent avoir la même taille, sinon SOMMEPROD renvoie #VALEUR! (en anglais #VALUE!).
  • Avec deux matrices ou plus, les valeurs de même position sont multipliées, puis les produits sont additionnés.
  • Avec une seule matrice, elle se contente de l'additionner, ce qui fait fonctionner les formes conditionnelles ci-dessous : =SOMMEPROD((A2:A7="North")*C2:C7) n'a qu'une matrice, déjà multipliée.
  • Un texte passé comme argument à part compte comme 0. Un texte à l'intérieur d'un calcul avec * provoque #VALEUR!.

SOMMEPROD fonctionne avec des matrices dans toutes les versions d'Excel sans Ctrl+Maj+Entrée (Cmd+Maj+Entrée sur Mac) : c'est pourquoi elle était l'outil standard des sommes conditionnelles avant l'arrivée de SOMME.SI.ENS, et le reste pour les cas que SOMME.SI.ENS ne sait pas traiter.

SOMMEPROD avec des conditions

Une comparaison sur une plage, A2:A7="North", renvoie un VRAI ou un FAUX par ligne. Multiplier par elle garde les lignes où elle est VRAI (×1) et met les autres à zéro (×0). Multipliez deux comparaisons pour un ET.

Somme et comptage sous conditions
F2
ABCDEF
1RegionProductSalesFormulaResult
2NorthApple120North sales230
3SouthPear45North Apple sales150
4NorthPear80Count North3
5EastApple55Count over 504
6SouthApple200Without --0
7NorthApple30
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =SOMMEPROD((A2:A7="North")*C2:C7)

F2 additionne les trois lignes North : 230. F3 multiplie deux conditions, donc une ligne ne compte que si les deux sont vraies : 150. Pour compter au lieu d'additionner, omettez les valeurs et transformez les VRAI/FAUX en nombres avec -- (deux signes moins) : F4 compte 3 lignes North. F6 montre pourquoi le -- compte : SOMMEPROD n'additionne pas les valeurs VRAI, donc la formule sans lui renvoie 0.

Les quatre premières donnent les mêmes résultats que SOMME.SI, SOMME.SI.ENS et NB.SI. La section suivante montre où SOMMEPROD se rend indispensable.

Les conditions que SOMME.SI.ENS ne sait pas exprimer

SOMME.SI.ENS (SUMIFS) compare une colonne à un critère fixe. Elle ne peut pas prendre le mois d'une date, comparer deux colonnes entre elles, ou multiplier la quantité par le prix avant d'additionner. SOMMEPROD le peut, car chaque condition est un calcul ordinaire.

Au-delà de SOMME.SI.ENS
G2
ABCDEFG
1RegionDateTargetActualFormulaResult
2North2026-01-05100120February sales135
3South2026-01-126045Rows over target3
4North2026-02-039080North or East sales285
5East2026-02-185055Above target by75
6South2026-03-02150200
7North2026-03-204030
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =SOMMEPROD((MOIS(B2:B7)=2)*D2:D7)
  • G2 prend le MOIS (MONTH) de chaque date et garde les lignes de février : 80 + 55 = 135. Cela additionne février de n'importe quelle année ; ajoutez *(ANNEE(B2:B7)=2026) pour une seule année.
  • G3 compare deux colonnes ligne par ligne et compte les lignes où Actual dépasse Target.
  • G4 est un OU : additionner deux conditions donne 1 quand l'une est vraie (2 quand les deux le sont, d'où le >0). North ou East : 285.
  • G5 additionne l'écart au-dessus de l'objectif, seulement pour les lignes qui l'ont dépassé.

SOMMEPROD pour les totaux et moyennes pondérés

La quantité multipliée par le prix est un total pondéré, auquel on peut ajouter des conditions. La même idée divisée par la somme des poids donne une moyenne pondérée : =SOMMEPROD(B2:B6;C2:C6)/SOMME(B2:B6) est le prix moyen par article vendu.

Chiffre d'affaires par région
G2
ABCDEFG
1RegionProductQtyPriceFormulaResult
2NorthApple10$1.20North revenue$31.00
3SouthPear4$1.50All revenue$61.00
4NorthPear6$1.50Average price per item$1.36
5EastApple8$1.20
6SouthApple12$1.20
7NorthPlum5$2.00
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =SOMMEPROD((A2:A7="North")*C2:C7*D2:D7)

North a vendu 10 pommes à $1.20, 6 poires à $1.50 et 5 prunes à $2.00, donc G2 affiche $31.00. La simple moyenne des prix traiterait une prune comme si elle se vendait aussi souvent qu'une pomme ; G4 pondère chaque prix par sa quantité.

Exercice : chiffre d'affaires avec une condition

À vous : chiffre d'affaires de South
G2
ABCDEFG
1RegionProductQtyPriceFormulaResult
2NorthApple10$1.20South revenue
3SouthPear4$1.50
4NorthPear6$1.50
5EastApple8$1.20
6SouthApple12$1.20
7NorthPlum5$2.00
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À vous : Calculez le chiffre d'affaires de South : la quantité multipliée par le prix, seulement pour les lignes South. Écrivez la formule en G2.

SOMMEPROD ou SOMME.SI.ENS, et ses deux erreurs

ConditionSOMME.SI.ENSSOMMEPROD
Colonne égale à une valeur=SOMME.SI.ENS(C2:C7;A2:A7;"North")=SOMMEPROD((A2:A7="North")*C2:C7)
Contient un texte=SOMME.SI.ENS(C2:C7;B2:B7;"*app*")=SOMMEPROD(ESTNUM(CHERCHE("app";B2:B7))*C2:C7)
Mois d'une dateimpossible directement=SOMMEPROD((MOIS(B2:B7)=2)*D2:D7)
Colonne contre colonneimpossible=SOMMEPROD(--(D2:D7>C2:C7))
Quantité × priximpossible=SOMMEPROD(C2:C7;D2:D7)

Préférez SOMME.SI.ENS chaque fois qu'elle peut faire le travail. Elle se lit mieux, elle est plus rapide sur des dizaines de milliers de lignes et elle accepte des colonnes entières. =SOMMEPROD((A:A="North")*C:C) multiplie sur plus d'un million de lignes et renvoie #VALEUR! dès qu'elle atteint le texte d'en-tête en C1 : donnez à SOMMEPROD des plages exactes comme A2:A500.

Les deux erreurs que vous rencontrerez :

  • #VALEUR! à cause de plages de tailles différentes. =SOMMEPROD(B2:B6;C2:C7) échoue. Chaque plage doit couvrir les mêmes lignes.
  • #VALEUR! à cause de texte dans une plage multipliée. Un en-tête ou un "n/a" dans C2:C7 casse (A2:A7="North")*C2:C7, car un texte ne se multiplie pas. Faites commencer la plage sous l'en-tête, ou passez les valeurs comme argument séparé : =SOMMEPROD(--(A2:A7="North");C2:C7) traite le texte de C comme 0.

Questions fréquentes

Que fait SOMMEPROD dans Excel ?

Elle multiplie des plages ligne par ligne et additionne les produits. =SOMMEPROD(B2:B6;C2:C6) vaut B2C2 + B3C3 + ... + B6*C6, par exemple la quantité multipliée par le prix, additionnée en un total de commande.

Comment utiliser SOMMEPROD avec une condition ?

Multipliez par une comparaison : =SOMMEPROD((A2:A7="North")*C2:C7) additionne C2:C7 pour les lignes North. La comparaison donne VRAI ou FAUX, qui deviennent 1 ou 0 une fois multipliés.

Que signifie -- dans SOMMEPROD ?

Ce sont deux signes moins, qui transforment VRAI et FAUX en 1 et 0. =SOMMEPROD(--(C2:C7>50)) compte les valeurs supérieures à 50. Sans eux, SOMMEPROD traite VRAI/FAUX comme 0 et renvoie 0.

Faut-il utiliser SOMMEPROD ou SOMME.SI.ENS ?

Utilisez SOMME.SI.ENS quand ses critères peuvent exprimer la condition : elle est plus lisible et plus rapide sur de grandes plages. Utilisez SOMMEPROD quand la condition demande un calcul, comme le mois d'une date, une colonne comparée à une autre, ou la quantité multipliée par le prix.

Pourquoi SOMMEPROD renvoie-t-elle #VALEUR! ?

Les plages n'ont pas la même taille (B2:B6 avec C2:C7), ou une plage multipliée avec * contient du texte. Donnez la même taille à chaque plage, et passez les plages contenant du texte comme arguments séparés, ce qui traite le texte comme 0.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

COMMENCER