Aller au contenu principal

Qu'est-ce que la fonction PRODUITMAT ?

Définition
La fonction PRODUITMAT retourne le produit matriciel de deux tableaux : le nombre de colonnes de matrice1 doit être égal au nombre de lignes de matrice2, et le résultat a les dimensions lignes(matrice1) × colonnes(matrice2).

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

=PRODUITMAT(matrice1; matrice2)

Clique sur un argument pour aller à son explication.

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.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

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.

1

matrice1

: ta première matrice, un tableau rectangulaire de nombres

Elle 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.

2

matrice2

: ta seconde matrice, celle qui sera multipliée avec la première

Pour 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!.

Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment multiplier deux matrices avec la fonction PRODUITMAT

Tu montes un modèle qui enchaîne deux transformations, et avant de le brancher sur tes vraies données tu veux voir le produit matriciel se dérouler sur deux matrices assez petites pour être vérifiées à la main. Les neuf valeurs de gauche forment la première matrice, les neuf valeurs de droite la seconde, et tu attends la grille 3×3 que donne leur produit. La fonction PRODUITMAT la sort d'une seule saisie, là où le calcul à la main demande vingt-sept multiplications et dix-huit additions.

Les étapes
  1. 1
    Dans une cellule, écris =PRODUITMAT(.
  2. 2
    En 1er argument : sélectionne le bloc de gauche avec ses neuf valeurs, A2:C4. La ligne 1 ne porte que les en-têtes A1, A2 et A3 qui nomment les colonnes, et une plage qui les embarquerait mélangerait du texte à des nombres.
  3. 3
    En 2ᵉ argument : sélectionne le bloc de droite, E2:G4. C'est là que se joue la seule contrainte de forme de la fonction PRODUITMAT : la première matrice compte trois colonnes et la seconde trois lignes, les deux nombres tombent en face, donc la multiplication est possible.
  4. 4
    Ferme la parenthèse et appuie sur Entrée. Tapée dans la seule cellule I4, cette formule matricielle déverse d'elle-même ses neuf valeurs sur la plage I4:K6.
Au final, ta formule devrait ressembler à ça :=PRODUITMAT(A2:C4; E2:G4)
Explication
La fonction ne multiplie pas les cases une à une : chaque valeur 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. Le 10 qui occupe la case centrale vient ainsi de la deuxième ligne du bloc de gauche (0, 1, 3) croisée avec la deuxième colonne du bloc de droite (0, 1, 3), soit 0×0 + 1×1 + 3×3. Une seule saisie en I4 suffit pour les neuf cases, parce qu'une matrice dynamique déverse son bloc entier à partir de la cellule de départ.
Exemple 2

Comment calculer un coût total par usine avec les fonctions PRODUITMAT et TRANSPOSE

Deux usines fabriquent les mêmes trois références, et la réunion budgétaire de lundi attend le coût de production de chacune. Tes quantités sont rangées par produit en lignes et par usine en colonnes, tes coûts unitaires tiennent dans la colonne d'à côté, et tu veux les deux totaux d'un coup plutôt qu'un calcul séparé par usine. La fonction PRODUITMAT croise les deux blocs en une seule saisie, une fois la colonne des coûts remise dans le bon sens.

Les étapes
  1. 1
    Dans une cellule, écris =PRODUITMAT(.
  2. 2
    En 1er argument : écris la fonction TRANSPOSE qui pivote les coûts et referme-la, TRANSPOSE(D2:D4). Tes trois coûts unitaires sont rangés à la verticale, donc sur une seule colonne, et une matrice à une colonne ne peut pas rencontrer les trois lignes des quantités. En les couchant à plat sur une ligne de trois colonnes, TRANSPOSE rétablit la correspondance et t'évite l'erreur #VALEUR!.
  3. 3
    En 2ᵉ argument : sélectionne les six quantités seules, B2:C4, sans la colonne A des libellés ni la colonne D des coûts déjà passée en premier argument. Ce bloc compte trois lignes, exactement le nombre de colonnes que la première matrice offre désormais, et deux colonnes qui donneront les deux totaux attendus.
  4. 4
    Ferme la parenthèse et appuie sur Entrée. Posée dans une cellule libre à droite du tableau comme F2, cette formule matricielle étale toute seule le total Nord puis le total Sud sur la plage F2:G2.
Voici la formule que tu obtiens à la fin :=PRODUITMAT(TRANSPOSE(D2:D4); B2:C4)
Explication
La formule fait les deux comptes en un seul passage : le total Nord vient des trois quantités de sa colonne, chacune multipliée par le coût unitaire de sa ligne, le tout additionné, et le total Sud suit exactement le même chemin sur sa propre colonne. Ouvrir une troisième usine revient alors à étendre la plage des quantités d'une colonne, et le résultat gagne sa case tout seul, sans que tu retouches la formule.
Exemple 3

Comment résoudre un système d'équations linéaires avec les fonctions PRODUITMAT et INVERSEMAT

Un traiteur t'a livré trois fois le même assortiment de sandwichs, de salades et de desserts, mais sa facture ne porte qu'un total par livraison, jamais le prix de chaque article. Avant de renégocier, tu veux ces trois prix unitaires, et tes neuf quantités plus tes trois totaux suffisent à les retrouver puisque cela revient à un système de trois équations à trois inconnues. La fonction PRODUITMAT est la dernière brique du calcul, celle qui transforme la matrice des quantités retournée en trois prix lisibles.

Les étapes
  1. 1
    Dans une cellule, écris =PRODUITMAT(.
  2. 2
    En 1er argument : écris la fonction INVERSEMAT qui retourne la matrice des neuf quantités et referme-la, INVERSEMAT(B2:D4). C'est ce retournement qui permet de remonter des totaux vers les prix, là où passer les quantités telles quelles multiplierait des quantités par des euros et n'aurait aucun sens.
  3. 3
    En 2ᵉ argument : sélectionne les trois montants facturés, E2:E4, pris seuls et dans le même ordre de lignes que les quantités. Cette colonne compte trois lignes, ce qui tombe en face des trois colonnes de l'inverse, et une seule colonne, donc le résultat en aura une aussi.
  4. 4
    Ferme la parenthèse et appuie sur Entrée. Posée dans une cellule libre comme G2, cette formule matricielle déverse ses trois prix sur la plage G2:G4, soit un prix par article dans l'ordre des colonnes Sandwichs, Salades et Desserts.
Une fois les morceaux assemblés, ta formule donne ça :=PRODUITMAT(INVERSEMAT(B2:D4); E2:E4)
Explication
Ici, la fonction joue le rôle de la division qui n'existe pas entre deux matrices : multiplier les totaux par l'inverse des quantités défait le croisement d'origine et rend les prix un par un, 7 € le sandwich, 8 € la salade et 4 € le dessert. Le calcul ne tient que si la matrice des quantités est carrée et inversible (trois livraisons pour trois articles, avec des assortiments réellement différents) : deux livraisons proportionnelles l'une à l'autre feraient remonter une erreur #NOMBRE! depuis INVERSEMAT.
Vrai ou faux ?
« PRODUITMAT(A; B) et PRODUITMAT(B; A) donnent le même résultat. » Faux. La multiplication matricielle n'est pas commutative : inverser les deux plages change le résultat, quand cela ne déclenche pas carrément un #VALEUR! parce que les dimensions ne tombent plus en face.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les 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 =COLONNES(A1:C5) et =LIGNES(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.

Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec PRODUITMAT

1Astuce

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.

2Astuce

Vérifie la compatibilité des dimensions avec NBLIG et NBCOL

Avant de lancer un PRODUITMAT complexe, contrôle que tes matrices sont compatibles avec =COLONNES(matrice1) et =LIGNES(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.

3Astuce

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.

Le savais-tu ?
Sous Excel 365, tu tapes PRODUITMAT normalement et le résultat se déploie tout seul sur la plage voisine. Sur Excel 2019 et antérieur, c'est une formule matricielle : sélectionne d'abord toute la zone de résultat, puis valide par Ctrl+Maj+Entrée, sinon tu n'obtiens qu'une seule cellule.
FAQ

Questions fréquentes

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.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction PRODUITMAT : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir