PRODUITMAT (MMULT en anglais) calcule le produit matriciel de deux tableaux. Contrairement à une simple multiplication cellule par cellule, elle effectue une opération d'algèbre linéaire : chaque cellule du résultat est la somme des produits d'une ligne entière de la première matrice par une colonne entière de la seconde. C'est un outil de niche, mais indispensable dans son domaine.
Côté métier, elle s'utilise pour appliquer une transformation géométrique (rotation, homothétie) à un ensemble de points 2D, calculer la valeur totale d'un portefeuille multi-actifs en croisant allocations et montants, propager un vecteur d'entrées à travers une couche de réseau de neurones, ou calculer les coûts de production croisés par usine et type de produit.
Syntaxe de la fonction PRODUITMAT
=PRODUITMAT(matrice1; matrice2)Sur Excel classique (avant Excel 365), PRODUITMAT est une formule matricielle : sélectionne d'abord toute la plage de résultat, tape la formule, puis valide avec Ctrl+Maj+Entrée. Sous Excel 365, tape la formule normalement : les tableaux dynamiques s'étendent automatiquement.
Comprendre chaque paramètre de la fonction PRODUITMAT
Les deux matrices sont obligatoires, mais leur ordre n'a rien d'anodin : matrice1 vient toujours en premier et c'est elle qui multiplie matrice2, pas l'inverse. La seule contrainte de forme est que le nombre de colonnes de matrice1 colle au nombre de lignes de matrice2, sinon Excel te renvoie #VALEUR!.
Si tes données pointent dans le mauvais sens, ne réécris pas tes plages : enveloppe l'une d'elles dans TRANSPOSE() pour la pivoter avant de la passer à la fonction.
matrice1
: ta première matrice, un tableau rectangulaire de nombresElle peut avoir n'importe quelle dimension : 2×2, 3×4, 10×5... L'important est qu'elle soit compatible avec la seconde pour la multiplication.
Pense à ta matrice comme ayant m lignes et n colonnes (notation m×n). Ce n (le nombre de colonnes) devra correspondre au nombre de lignes de ta seconde matrice.
Astuce : Si ta matrice est orientée dans le mauvais sens, utilise TRANSPOSE() avant de la passer à PRODUITMAT pour la pivoter.
matrice2
: ta seconde matrice, celle qui sera multipliée avec la premièrePour que la multiplication fonctionne, elle doit avoir autant de lignes que la première matrice a de colonnes. Le résultat aura les dimensions : lignes(matrice1) × colonnes(matrice2).
Attention : Si matrice1 est de dimension m×n, alors matrice2 doit obligatoirement être de dimension n×p. Le résultat sera une matrice m×p. Si cette règle n'est pas respectée, Excel retourne #VALEUR!.
Pas envie d'écrire la formule PRODUITMAT à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Ingénieur : transformation de coordonnées par rotation
Tu es ingénieur en mécanique ou développeur graphique. Tu veux appliquer une rotation de 90° à un ensemble de points 2D. En algèbre linéaire, cette transformation se fait par multiplication matricielle : la matrice de rotation multiplie le vecteur de coordonnées.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Matrice rotation | Point X | Point Y | |
| 2 | 0 | -1 | 3 | 4 |
| 3 | 1 | 0 | 5 | 2 |
=PRODUITMAT(A1:B2; C1:D2)La fonction applique la transformation à plusieurs points d'un coup : le point (3,4) devient (-4,3) et le point (5,2) devient (-2,5) après rotation. C'est la même technique qu'en 3D, CAO, jeux vidéo ou vision par ordinateur.
Analyste financier : calcul de valeur de portefeuille
Tu es analyste financier et tu gères 3 clients avec différentes allocations dans 4 actifs. Tu veux calculer la valeur totale investie par actif et par client en une seule formule.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Client 1 | Client 2 | Client 3 | Actif A | Actif B | Actif C | Actif D | |
| 2 | 1 | 5000 | 3000 | 2000 | 1000 | |||
| 3 | 1 | 8000 | 0 | 4000 | 3000 | |||
| 4 | 1 | 2000 | 6000 | 1000 | 0 |
=PRODUITMAT(A1:C3; E1:H3)La fonction croise les données clients × actifs en une seule opération. C'est particulièrement utile quand tu as des dizaines de clients et d'actifs : la formule reste la même, seules les plages s'agrandissent.
Astuce de pro : Sous Excel 365, la formule s'étend automatiquement sur toutes les cellules nécessaires. Sur Excel classique, sélectionne d'abord la plage de résultat (ici 3×4 cellules), puis valide avec Ctrl+Maj+Entrée.
Data scientist : propagation dans un réseau de neurones
Tu es data scientist et tu construis un petit réseau de neurones. Tu veux calculer la propagation avant (forward pass) d'une couche : le vecteur d'entrées multiplié par la matrice de poids donne les activations de la couche suivante (avant fonction d'activation).
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Entrée 1 | Entrée 2 | Poids neurone 1 | Poids neurone 2 | Poids neurone 3 | |
| 2 | 1,5 | 2,3 | 0,5 | 0,8 | -0,3 | |
| 3 | 0,2 | -0,6 | 0,9 |
=PRODUITMAT(A1:B1; D1:F2)La fonction retourne le vecteur [1,21; -0,18; 1,62] pour les 3 neurones de sortie. Ça te permet de prototyper rapidement des architectures simples directement dans Excel avant de passer à Python ou TensorFlow.
Responsable supply chain : coût total par usine
Tu es responsable supply chain avec 2 usines qui produisent 3 types de produits. Tu veux calculer le coût total de production par usine en croisant les quantités produites et les coûts unitaires.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Usine Nord | Usine Sud | Coût A | Coût B | Coût C | |
| 2 | 100 | 150 | 25 | 30 | 40 | |
| 3 | 200 | 80 | 25 | 30 | 40 | |
| 4 | 120 | 200 | 25 | 30 | 40 |
=PRODUITMAT(TRANSPOSE(A1:B3); D1:F1)Ici, TRANSPOSE pivote la matrice de quantités avant la multiplication, ce qui aligne les dimensions. Cette combinaison te permet de manipuler tes tableaux dans tous les sens pour obtenir exactement le calcul dont tu as besoin.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction PRODUITMAT
Avec PRODUITMAT, les soucis viennent presque tous d'un décalage entre ce que tu crois multiplier et ce que la fonction multiplie vraiment. Les colonnes de la première matrice qui ne tombent pas en face des lignes de la seconde déclenchent #VALEUR!, et beaucoup s'attendent à un simple A1×B1 alors que chaque case du résultat est en réalité une somme de produits.
Deux autres pièges guettent : la multiplication matricielle n'est pas commutative, donc inverser les deux plages change tout, et sur Excel pré-365 une validation par simple Entrée ne te rend qu'une seule cellule au lieu de toute la matrice.
Erreur #VALEUR! : dimensions des matrices incompatibles
C'est l'erreur la plus courante. Elle survient quand le nombre de colonnes de la première matrice ne correspond pas au nombre de lignes de la seconde. Par exemple, une matrice 2×3 multipliée par une matrice 2×4 donne #VALEUR! car 3 ≠ 2.
Solution : Vérifie les dimensions : si matrice1 est m×n, alors matrice2 doit être n×p. Utilise =NBCOL(A1:C5) et =NBLIG(D1:D3) pour contrôler les dimensions avant de lancer la multiplication. Si besoin, utilise TRANSPOSE() pour réorienter l'une des matrices.
Confusion entre multiplication matricielle et multiplication cellule par cellule
Si tu veux simplement multiplier A1×B1, A2×B2, etc., tu n'as pas besoin de PRODUITMAT. Chaque cellule du résultat d'un PRODUITMAT est la somme des produits d'une ligne entière par une colonne entière, ce qui est une opération bien différente.
Solution : Pour une multiplication élément par élément, utilise simplement =A1:A10*B1:B10 (Excel 365) ou =A1*B1 copié vers le bas. PRODUITMAT est réservé à l'algèbre linéaire.
L'ordre des matrices donne un résultat faux ou inattendu
La multiplication matricielle n'est pas commutative : PRODUITMAT(A;B) n'est généralement pas égal à PRODUITMAT(B;A). Inverser les matrices par erreur produit un résultat complètement faux (quand ce n'est pas une erreur #VALEUR! à cause des dimensions).
Solution : Vérifie l'ordre de tes matrices selon ta modélisation. Si tu inverses les matrices intentionnellement pour t'adapter aux dimensions, utilise TRANSPOSE() plutôt que d'échanger les plages.
Sur Excel classique : une seule cellule de résultat au lieu de la matrice complète
Sur Excel pré-365, PRODUITMAT est une formule matricielle et nécessite une saisie spéciale. Si tu valides avec Entrée simple, tu n'obtiens qu'une seule valeur.
Solution : Sélectionne d'abord toute la plage de résultat (par exemple 2×4 cellules si le résultat est une matrice 2×4), tape la formule, puis valide avec Ctrl+Maj+Entrée. Les accolades {} apparaissent automatiquement.
Astuces avancées avec PRODUITMAT
Combine PRODUITMAT avec TRANSPOSE pour réorienter tes données
Quand tes données ne sont pas orientées dans le bon sens pour la multiplication, TRANSPOSE() les pivote avant de les passer à PRODUITMAT : =PRODUITMAT(TRANSPOSE(A1:C2); D1:F4). C'est souvent plus simple que de réorganiser les données dans la feuille.
Vérifie toujours les dimensions après le TRANSPOSE pour confirmer que la règle n×p est respectée.
Vérifie la compatibilité des dimensions avec NBLIG et NBCOL
Avant de lancer un PRODUITMAT complexe, contrôle que tes matrices sont compatibles avec =NBCOL(matrice1) et =NBLIG(matrice2). Ces deux valeurs doivent être égales pour que la multiplication fonctionne.
Place ces cellules de contrôle dans une zone dédiée de ta feuille si tu travailles régulièrement avec des matrices qui changent de taille.
Vérifie l'inversion d'une matrice avec INVERSEMAT
Pour vérifier qu'une inversion matricielle est correcte, multiplie la matrice par son inverse : =PRODUITMAT(A1:C3; INVERSEMAT(A1:C3)). Le résultat doit être la matrice identité (1 sur la diagonale, 0 ailleurs).
Des valeurs très proches de 0 (comme 1E-15) sont normales : c'est une imprecision numérique inévitable.
Questions fréquentes sur la fonction PRODUITMAT
Pourquoi ma formule PRODUITMAT retourne #VALEUR! ?
L'erreur #VALEUR! apparaît quand les dimensions de tes matrices sont incompatibles. Le nombre de colonnes de la première matrice doit être égal au nombre de lignes de la seconde. Par exemple, une matrice 2×3 ne peut être multipliée qu'avec une matrice 3×n.
Quelle est la différence entre PRODUITMAT et multiplier cellule par cellule ?
Multiplier cellule par cellule (A1*B1, A2*B2...) est une opération directe et simple. PRODUITMAT effectue une multiplication matricielle : chaque cellule du résultat est la somme des produits d'une ligne entière de la première matrice par une colonne entière de la seconde. C'est une opération d'algèbre linéaire.
L'ordre des matrices a-t-il une importance ?
Oui, absolument. PRODUITMAT(A;B) n'est généralement pas égal à PRODUITMAT(B;A). La multiplication matricielle n'est pas commutative. L'ordre compte énormément et inverse complètement le résultat dans la plupart des cas.
Comment entrer une formule matricielle dans Excel ?
Cela dépend de ta version. Sous Excel 365 ou Excel 2021, tape simplement ta formule et appuie sur Entrée : le résultat s'étend automatiquement sur toutes les cellules nécessaires. Sous Excel classique (2019 et antérieur), sélectionne d'abord toute la plage de résultat, tape ta formule, puis valide avec Ctrl+Maj+Entrée.
PRODUITMAT fonctionne-t-il avec des matrices non carrées ?
Oui. Tu peux multiplier une matrice 2×3 avec une matrice 3×4 : le résultat sera une matrice 2×4. Les matrices n'ont pas besoin d'être carrées. La seule contrainte est que le nombre de colonnes de la première matrice doit être égal au nombre de lignes de la seconde.
Pour aller plus loin
Les fonctions similaires : TRANSPOSE, INVERSEMAT, DETERMAT, SOMMEPROD, SEQUENCE
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

