MMULT: Matrix Products and Output Shape in WPS Spreadsheet
Multiply dense numeric matrices with MMULT, including rectangular orientation, noncommutativity and identity checks. Understand output dimensions and the lesson’s historical array-entry workflow.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
MMULT performs matrix multiplication, using row-by-column dot products. It does not multiply matching cells element by element. If the first matrix has shape m×n and the second n×p, the result has shape m×p. The shared inner dimension n must match.
Syntax and data requirements
=MMULT(array1, array2)
The official lesson permits ranges, references and array constants, requires numeric entries, and states that the first matrix’s column count must equal the second matrix’s row count. These controls use fully populated numeric worksheet ranges, avoiding locale-sensitive array-literal separators.
The result is a matrix. The lesson’s historical workflow selects an output range of the correct shape, edits the formula with F2 and confirms with Ctrl+Shift+Enter. This is a description of the vendor lesson, not a demonstrated current array-entry or automatic-spill workflow. No native interface was used for this guide.
A dense 2×2 example
Enter the first matrix in A2:B3 and the second in E2:F3, row by row:
A2:B3 E2:F3
1 2 5 6
3 4 7 8
For =MMULT(A2:B3,E2:F3), the independently expected 2×2 result is:
19 22
43 50
Top left is 1×5+2×7=19; top right is 1×6+2×8=22. The second row similarly gives 43 and 50. Each output combines a row of the first input with a column of the second.
Reversing the two input matrices produces rows [23,34] and [31,46], not the original result. Matrix multiplication is generally not commutative.
Rectangular example and output orientation
Set A2:C3 to rows [1,2,3] and [4,5,6]. Set E2:F4 to rows [1,2], [3,4] and [5,6]. The first matrix is 2×3 and the second is 3×2, so =MMULT(A2:C3,E2:F4) has a 2×2 result:
22 28
49 64
For example, the lower-right entry is 4×2+5×4+6×6=64. The two input ranges need not have identical shapes; only the inner dimensions must match.
Practical verification with an identity and an inverse
Use A2:B3 = [2,1;1,3], where the semicolon here separates mathematical rows rather than prescribing an array parser. Multiplication by the 2×2 identity [1,0;0,1] returns A unchanged. Multiplication by [0.6,−0.2;−0.2,0.4] gives identity, because the latter is A’s mathematical inverse. The four dot products are 1,0,0,1.
These controls verify shape, ordering and arithmetic independently. They are useful for checking a model that applies a linear transformation to several quantities, but they do not certify a numerical solver or a particular WPS output-selection method.
Documented errors and historical limits
The lesson specifies #VALUE! for blank or text cells, incompatible inner dimensions, and a result containing 5,461 or more cells. The size statement is a historical documentation limit, not a verified ceiling for every current build. The original examples stay small.
A numeric zero is a legitimate matrix element; a blank is not an interchangeable zero under the documented requirement. Check every cell and both shapes before investigating the arithmetic. Large or ill-conditioned calculations need separate numerical assessment; the lesson and these small controls provide no precision or overflow guarantee.
Availability and evidence
The official WPS lesson is dated 2019-05-17 and explicitly labels its applicability WPS Office for Windows Personal. It does not identify a numeric release. This establishes documentation by that date, not the function’s original introduction or its last working version. Current build limits and equivalence across WPS clients remain unverified. The available evidence does not establish retirement or formal deprecation.
Checked October 18, 2026. The examples in this guide are original, independently calculated controls based on the lesson. They have not been run in WPS or another spreadsheet application. No screenshot or execution result is claimed.