MMULT
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.
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.
=MMULT(A1:B2, D1:E2)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})Inline matrix multiplication: row×column products summed for each position
=MMULT(A1:C1, B1:B3)Multiplies a 1×3 row vector by a 3×1 column vector, yielding a scalar (dot product)
- •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
- •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
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.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
