MMULT

    Math & Trig

    Returns the matrix product of two arrays. The number of columns in array1 must equal the number of rows in array2. The result is an array with the same number of rows as array1 and the same number of columns as array2.

    Translations
    EnglishMMULT
    FrenchPRODUITMAT
    SpanishMMULT
    GermanMMULT
    ItalianMATR.PRODOTTO
    PortugueseMATRIZ.MULT
    DutchMATRIX.PRODUCT
    PolishMACIERZ.ILOCZYN
    RussianМУМНОЖ
    TurkishÇARPIMAT
    CzechSOUČIN.MATIC
    HungarianMSZORZAT
    SwedishMMULT
    DanishMPRODUKT
    FinnishMKERTO
    Syntax
    MMULT(array1, array2)

    Arguments

    • array1The first matrix to multiply. Must be a numeric array where columns equal the rows of array2.
    • array2The second matrix to multiply. Must be a numeric array where rows equal the columns of array1.
    Examples
    =MMULT(A1:B2, D1:E2)
    Matrix result

    Multiplies a 2×2 matrix in A1:B2 by a 2×2 matrix in D1:E2, returning a 2×2 result

    =MMULT({1,2;3,4}, {5,6;7,8})
    {19,22;43,50}

    Inline matrix multiplication: row×column products summed for each position

    =MMULT(A1:C1, B1:B3)
    Single value

    Multiplies a 1×3 row vector by a 3×1 column vector, yielding a scalar (dot product)

    Tips & Best Practices
    • Array1 columns must equal Array2 rows — otherwise MMULT returns #VALUE!
    • Enter MMULT as an array formula (Ctrl+Shift+Enter in older Excel) for multi-cell results
    • In Excel 365, MMULT spills automatically into adjacent cells
    • Use MMULT for solving systems of equations, weighted sums, or transforming datasets
    Common Mistakes
    • Mismatching matrix dimensions - the number of columns in array1 must exactly equal the number of rows in array2, or MMULT returns a #VALUE! error instead of a partial result
    • Forgetting to enter MMULT as an array formula in older Excel versions (Ctrl+Shift+Enter), which can cause it to return only a single value instead of the full matrix result
    • Confusing matrix multiplication with simple element-by-element multiplication - MMULT computes true matrix products, not the same as multiplying two ranges together with a plain * operator
    Related Functions
    TRANSPOSEFlips a matrix's rows and columns, often used before MMULT to make two matrices' dimensions compatible for multiplication.
    MINVERSECalculates a matrix's inverse, frequently combined with MMULT to solve systems of linear equations.
    SUMPRODUCTCan replicate a single dot-product calculation that MMULT performs as part of a larger matrix multiplication.
    Frequently Asked Questions

    Why does MMULT return a #VALUE! error?

    The number of columns in array1 doesn't match the number of rows in array2 - matrix multiplication requires these dimensions to align exactly.

    Do I need to press Ctrl+Shift+Enter for MMULT?

    In older Excel versions, yes - MMULT returns an array, and without entering it as an array formula, you'd only see the top-left value. In Excel 365, it spills automatically into adjacent cells.

    Is MMULT the same as multiplying two ranges with the * operator?

    No, MMULT performs true matrix multiplication (row-by-column dot products), while * multiplies corresponding cells element by element - they're mathematically very different operations.

    Need to translate a formula using MMULT?

    Use our translator to convert your complete formula