MMULT(array1, array2)
Returns the matrix product of two arrays, an array as the same number of rows as array1 and columns as array2.

This function must be entered as an array formula.

The following examples demonstrates how the function works.

Example 1

Array1 (B2:C3) has 2 rows and array2 (E2:F3) has 2 columns, the returning array has 2 rows and 2 columns.

MMULT1

Array formula in cell range L8:M9:

=MMULT(B8:C9,E8:F9)

Cell L8: a₁₁*b₁₁+a₁₂*b₂₁ becomes 0*0+1*1 and returns 1

Cell L9: a₂₁*b₁₁+a₂₂*b₂₁ becomes 1*0+0*1 and returns 0

Cell M8: a₁₁*b₁₂+a₁₂*b₂₂ becomes 0*1+1*0 and returns 0

Cell M9: a₂₁*b₁₂+a₂₂*b₂₂ becomes 1*1+0*0 and returns 1

Example 2

Array1 (B2:C4) has 3 rows and array2 (E2:G3) has 3 columns, the returning array has 3 rows and 3 columns.

MMULT2

Array formula in cell range L8:M9:

=MMULT(B8:C10,E8:G9)

Cell M8: a₁₁*b₁₁+a₁₂*b₂₁ becomes 0*1+1*4 and returns 4

Cell M9: a₂₁*b₁₁+a₂₂*b₂₁ becomes -4*1+0*4 and returns -4

Cell M10: a₃₁*b₁₁+a₃₂*b₂₁ becomes 3*1+1*4 and returns 7

Cell N8: a₁₁*b₁₂+a₁₂*b₂₂ becomes 0*2+1*-5 and returns -5

Cell N9: a₂₁*b₁₂+a₂₂*b₂₂ becomes -4*2+0*-5 and returns -8

Cell N10: a₃₁*b₁₂+a₃₂*b₂₂ becomes 3*2+1*-5 and returns 1

Cell O8: a₁₁*b₁₃+a₁₂*b₂₃ becomes 0*3+1*-6 and returns -6

Cell O9: a₂₁*b₁₃+a₂₂*b₂₃ becomes -4*3+0*-6 and returns -12

Cell O10: a₃₁*b₁₃+a₃₂*b₂₃ becomes 3*3+1*-6 and returns 3

Example 3

Array1 (B2:D3) has 2 rows and array2 (F2:G4) has 2 columns, the returning array has 2 rows and 2 columns.

MMULT3

Array formula in cell range L8:M9:

=MMULT(B8:D9,F8:G10)

Cell L8: a₁₁*b₁₁+a₁₂*b₂₁+a₁₃*b₃₁ becomes 1*0+2*-4+3*3 and returns 1

Cell L9: a₂₁*b₁₁+a₂₂*b₂₁+a₂₃*b₃₁ becomes 4*0+-5*-4+-6*3 and returns 2

Cell M8: a₁₁*b₁₂+a₁₂*b₂₂+a₁₃*b₃₂ becomes 1*1+2*0+3*1 and returns 4

Cell M9: a₂₁*b₁₂+a₂₂*b₂₂+a₂₃*b₃₂ becomes 4*1+-5*0+-6*1 and returns -2

Download excel *.xlsx file

MMULT.xlsx

Recommended reading

Two very interesting posts by excelxor. Both formulas use the MMULT function.

Which numbers add up to total? (2): Multiple Solutions

Which numbers add up to total?