En bref —
SUMPRODUCTaligne deux plages de même taille (ou plus), les multiplie cellule par cellule et additionne les produits. Syntaxe :=SUMPRODUCT(matrice1; [matrice2]; …). En une seule cellule, elle fait ce qu'une colonne intermédiaire suivie d'unSUMfaisait autrefois. Ses deux super-pouvoirs face àSUMIFS: les totaux pondérés (=SUMPRODUCT(Qté; Prix)) et la logique multi-conditions à base de tableaux booléens — on multiplie les tableaux pour le ET, on les additionne pour le OU, et on ne met jamaisAND()/OR()à l'intérieur (ils réduisent le tableau à une seule valeur). Chaque tableau doit avoir la même taille, sinon vous obtenez#VALUE!. Fonctionne dans toutes les versions jusqu'à Excel 2003.
Remarque : dans l'interface française d'Excel, cette fonction s'appelle SOMMEPROD (séparateur d'arguments : point-virgule
;).
=SUMPRODUCT(Qty, Price) ' chiffre d'affaires total : Σ qté×prix
=SUMPRODUCT((Region="West")*(Month=1)*Sales) ' somme conditionnelle : Ouest ET janvier
La plupart des gens découvrent SUMPRODUCT comme une formule mystérieuse copiée sur
un forum pour faire marcher une « somme si deux choses sont vraies ». Elle mérite
mieux. C'est l'une des fonctions les plus discrètement puissantes d'Excel — un petit
moteur de calcul matriciel qui vivait dans les feuilles de calcul une décennie avant
l'existence de SUMIFS, et qui résout encore des problèmes que SUMIFS ne sait pas
traiter. Ce guide s'articule autour du modèle mental qui fait tout comprendre, puis
des tâches pour lesquelles elle reste le bon outil.
Ce que vous allez apprendre
- Le modèle mental :
SUMPRODUCTest un produit scalaire en une seule cellule - Le piège
#VALUE!— chaque tableau doit avoir exactement la même taille - La logique multi-conditions : multiplier pour le ET, additionner pour le OU
- Quand vous avez vraiment besoin de la double négation
--(et quand vous n'en avez pas besoin) - Les deux tâches que
SUMIFSne sait pas faire : totaux pondérés et OU entre colonnes - Le bon arbitrage :
SUMPRODUCTvsSUMIFSvs anciennes formules matricielles CSE
Le modèle mental : un produit scalaire en une seule cellule
Oubliez les conditions un instant. À la base, SUMPRODUCT fait exactement ce que son
nom indique — elle prend les produits et les additionne. Donnez-lui deux
colonnes et elle multiplie la ligne 1 par la ligne 1, la ligne 2 par la ligne 2,
jusqu'en bas, puis additionne chaque produit en un seul nombre :
' Qty = {2; 5; 3}, Price = {10; 4; 20}
=SUMPRODUCT(Qty, Price) ' = 2*10 + 5*4 + 3*20 = 100
Voilà toute l'idée. Si vous avez déjà construit une colonne intermédiaire de
=A2*B2, tirée vers le bas, puis sommée — SUMPRODUCT fait cela, condensé en une
seule cellule, sans colonne intermédiaire. Gardez cette image en tête et tout le
reste n'en est qu'une variation : les « conditions » que vous verrez ensuite ne sont
que des tableaux supplémentaires de 1 et de 0 intégrés dans la même opération
multiplier-puis-additionner.
La règle qui mord en premier : les tableaux doivent avoir la même taille
Voici l'erreur que vous rencontrerez avant toute autre. Chaque tableau que vous
passez à SUMPRODUCT doit avoir la même forme — même nombre de lignes, même
nombre de colonnes — car elle les apparie cellule par cellule. Une incompatibilité et
vous obtenez #VALUE! :
=SUMPRODUCT(A2:A10, B2:B11) ' #VALUE! — 9 lignes contre 10 lignes
=SUMPRODUCT(A2:A10, B2:B10) ' OK — 9 lignes des deux côtés
La version classique de ce bug est subtile : vous construisez la formule, elle
marche, puis quelqu'un insère une ligne dans une plage mais pas dans l'autre, et d'un
coup c'est #VALUE! — ou pire, vous avez ancré une plage une ligne trop court et elle
apparie silencieusement les mauvaises lignes ensemble. Rendez chaque plage
identique, idéalement en les pointant vers les mêmes colonnes de tableau
(Table[Qty], Table[Price]) pour qu'elles grandissent et rétrécissent ensemble.
Cette seule habitude élimine toute la catégorie des erreurs d'incompatibilité.
Les conditions : multiplier pour le ET, additionner pour le OU
Voilà la partie qui vaut la peine d'être intériorisée, car c'est la même logique qui
fait fonctionner FILTER et les formules matricielles dans l'Excel moderne. Une
comparaison comme (Region="West") ne renvoie pas une seule réponse — elle renvoie
un tableau entier de TRUE/FALSE, un par ligne. Excel traite TRUE comme 1 et
FALSE comme 0 dès l'instant où vous faites une opération arithmétique dessus. Donc :
' ET — multiplier les conditions : une ligne ne compte que si LES DEUX valent 1
=SUMPRODUCT((Region="West")*(Product="Widget")*Sales)
' OU — additionner les conditions : une ligne compte si L'UNE des deux vaut 1
=SUMPRODUCT(((Region="West")+(Region="East"))*Sales)
Multiplier deux tableaux de 1/0 donne 1 uniquement là où les deux valent 1 —
c'est le ET. Les additionner donne 1 (ou plus) partout où l'une ou l'autre vaut 1
— c'est le OU. L'erreur fatale est de se tourner vers les fonctions de feuille de
calcul AND() et OR() : celles-ci réduisent le tableau entier à un seul
TRUE/FALSE, si bien que votre formule évalue discrètement une seule condition
pour toute la colonne au lieu de ligne par ligne. La règle est sans appel — à
l'intérieur de SUMPRODUCT, utilisez * et +, jamais AND()/OR().
Pour le OU, encadrez les conditions additionnées de sorte qu'une ligne satisfaite deux
fois ne compte qu'une seule fois si vous avez besoin d'un décompte ; pour une
somme comme l'exemple ci-dessus, le double comptage ne peut pas se produire car le
Sales de chaque ligne est ajouté au plus une fois par parenthèse.
Quand vous avez besoin de la double négation --
Vous verrez -- parsemé dans les formules SUMPRODUCT en ligne et vous vous
demanderez si c'est de la magie. Ça ne l'est pas. C'est une double négation qui
force les TRUE/FALSE en 1/0. Vous n'en avez besoin que lorsqu'un tableau de
conditions n'a rien à multiplier :
=SUMPRODUCT(--(Region="West")) ' COMPTE des lignes Ouest — il faut -- pour convertir
=SUMPRODUCT((Region="West")*Sales) ' SOMME des ventes Ouest — le *Sales convertit déjà
Dans la seconde formule, la multiplication par Sales transforme déjà les booléens en
nombres, donc -- serait redondant. Dans la première, il n'y a qu'un seul tableau
booléen et aucune opération arithmétique pour déclencher la conversion — sans --
vous additionneriez des TRUE/FALSE, ce qui donne 0. Règle empirique : un seul
tableau de condition isolé → ajoutez -- ; toute condition multipliée par autre chose
→ elle est déjà convertie.
Les deux tâches que SUMIFS ne sait vraiment pas faire
Si tout ce dont vous avez besoin est une simple somme multi-conditions en ET, utilisez
SUMIFS — elle est plus rapide sur les grandes
feuilles et bien plus lisible. SUMPRODUCT gagne sa place dans les deux cas que
SUMIFS ne peut tout simplement pas exprimer :
' 1) total / moyenne PONDÉRÉ(E) — multiplier deux colonnes PUIS sommer
=SUMPRODUCT(Qty, Price) / SUM(Qty) ' prix moyen pondéré
' 2) OU entre colonnes DIFFÉRENTES
=SUMPRODUCT(((Region="West")+(Channel="Online")>0)*Sales)
SUMIFS peut filtrer, mais elle ne peut pas multiplier deux colonnes ensemble avant
de sommer — une moyenne pondérée (unités × prix, sommées, divisées par les unités)
est donc hors de sa portée, et AVERAGEIFS ne
fait qu'une moyenne simple. Et SUMIFS ne relie ses conditions que par un ET ; un
OU qui s'étend sur deux colonnes différentes n'a pas de forme SUMIFS propre. Ces
deux-là — la pondération et le OU entre colonnes — sont la raison pour laquelle
SUMPRODUCT figure encore dans la trousse de tout analyste.
Le bon arbitrage : SUMPRODUCT vs SUMIFS vs matrices CSE
Trois époques d'une même idée, et le bon choix a évolué avec le temps :
- Sommes/comptages conditionnels simples → utilisez
SUMIFS/COUNTIFS. Elles sont optimisées, lisibles, et l'ordre des arguments ne change jamais. N'écrivez pasSUMPRODUCT((A="x")*(B="y")*C)quandSUMIFS(C,A,"x",B,"y")dit la même chose. - Totaux pondérés, OU entre colonnes, multiplier-puis-filtrer →
SUMPRODUCT. C'est son vrai terrain, et rien de plus récent ne la remplace pleinement en une seule cellule. - Anciennes
{=SUM(IF(…))}saisies avec Ctrl+Maj+Entrée → mettez-les à la retraite.SUMPRODUCTgère les tableaux nativement sans le rituel CSE, et sur l'Excel moderneFILTERcouvre les cas d'extraction-puis-somme de façon plus lisible. Si vous voyez encore des accolades autour d'un SUM-de-IF, c'est presque toujours unSUMPRODUCT(ou unSUMIFS) qui s'ignore.
L'avis tranché : SUMPRODUCT n'est plus votre outil quotidien de somme
conditionnelle — mais c'est celui que vous gardez pour les tâches que la famille des
-IFS ne peut pas atteindre, et il fonctionne à l'identique dans toutes les versions
d'Excel que quiconque utilise encore.
Comment ExcelMaster vous aide
Le plus dur avec SUMPRODUCT n'est jamais la saisie — c'est de décider si vous en
avez besoin, et de bien gérer le ET/OU et le -- lorsque c'est le cas.
ExcelMaster lit la question en termes métier — coût moyen pondéré sur ces
commandes, ou ventes totales qui sont soit en Ouest soit vendues en ligne — et
écrit la formule avec des tableaux de même taille, les booléens multipliés ou
additionnés correctement, et -- uniquement là où il a sa place. Vous décrivez le
nombre ; il choisit pour vous entre SUMPRODUCT, SUMIFS et FILTER.
Questions fréquentes
Pourquoi mon SUMPRODUCT renvoie-t-il #VALUE! ?
Presque toujours une incompatibilité de taille : deux de vos tableaux n'ont pas le même
nombre de lignes (ou de colonnes). SUMPRODUCT apparie les cellules une à une, donc
A2:A10 (9 lignes) et B2:B11 (10 lignes) ne peuvent pas s'aligner. Donnez à chaque
plage exactement la même forme — utiliser des colonnes de tableau les garde
synchronisées automatiquement. Une valeur texte égarée dans une plage numérique peut
aussi le déclencher.
Comment utiliser SUMPRODUCT avec plusieurs critères ?
Multipliez les conditions pour le ET, additionnez-les pour le OU :
=SUMPRODUCT((Region="West")*(Product="Widget")*Sales). Chaque condition comme
(Region="West") est un tableau de TRUE/FALSE qui devient 1/0 lors de la
multiplication. N'utilisez pas AND()/OR() à l'intérieur — ils réduisent le tableau
à une seule valeur.
À quoi sert le double moins (--) dans SUMPRODUCT ?
Il force les TRUE/FALSE en 1/0. Vous en avez besoin quand un tableau de conditions n'est
multiplié par rien d'autre — par exemple pour compter des lignes :
=SUMPRODUCT(--(Region="West")). Si vous multipliez déjà par une colonne numérique, la
conversion se fait gratuitement et -- est redondant.
SUMPRODUCT vs SUMIFS — laquelle choisir ?
Pour une simple somme conditionnelle, utilisez SUMIFS — elle est plus rapide et plus
claire. Utilisez SUMPRODUCT quand vous devez multiplier deux colonnes avant de sommer
(totaux pondérés), ou pour exprimer un OU entre deux colonnes différentes, ce que
SUMIFS ne sait pas faire.
SUMPRODUCT fonctionne-t-elle dans les anciennes versions d'Excel ?
Oui — c'est l'une des plus anciennes fonctions matricielles, qui fonctionne dans toutes les versions jusqu'à Excel 2003 (et avant), sans Ctrl+Maj+Entrée requis. Cette fiabilité multiversion est l'une des raisons de sa popularité durable.
Testé dans
Testé dans : Excel 365 (Windows 11) — dernière vérification le 30/06/2026.
Guides associés : Excel SUMIFS · Excel COUNTIFS · Excel SUBTOTAL · Excel AGGREGATE · Excel FILTER
