Contact

Zoho Sheet MMULT: Matrix Multiplication and Worked Cost Tables

Mathematical Intermediate Zoho Sheet

Learn Zoho Sheet MMULT dimensions, row-by-column calculations and array placement with recipe costs, price changes and reversed matrix products.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

MMULT multiplies two matrices. Each output cell is a row from the first matrix combined with a column from the second: multiply corresponding entries and add the products. It does not simply multiply cells in matching positions.

A three-by-two recipe table multiplied by a two-by-two price table produces a three-by-two result: three recipes under two price scenarios.

Availability and version history

  • Introduced: The first introduction release and date are not established by the checked references.
  • Availability: Listed in the current Zoho Sheet function help; no final supported-version endpoint is established.
  • Scope: Current web-service documentation. Historical builds, mobile clients, offline use and imported workbooks remain separately unverified.
  • Checked: October 14, 2026, against the official MMULT reference. All worked outputs were independently calculated; no native Zoho Sheet test was performed.

Syntax and dimensions

MMULT(array1; array2)

The MMULT reference accepts arrays or ranges. The number of columns in the first must equal the number of rows in the second. The output retains the first matrix’s row count and the second matrix’s column count. Both arguments are supplied in these examples.

For shapes m×k and k×n, the output is m×n. Shape compatibility does not make the multiplication interchangeable: reversing the matrices can be impossible, or can give a different answer.

Zoho’s dynamic-array instructions describe entering an array formula in one cell with ordinary Enter. Leave its output rectangle empty; an obstruction produces #SPILL!. Enter only the anchor formula, rather than filling copies across the output. These exercises follow that documented web workflow.

Price three recipes under two scenarios

Create RecipeCosts, reserving A1:N8. In A1:B1 put Ingredient 1 units and Ingredient 2 units. Enter:

Row A B
2 2 1
3 1 3
4 4 2

These rows are recipes R1, R2 and R3. Put Scenario A price and Scenario B price in D1:E1, then enter the ingredient prices:

Row D E
2 5 6
3 2 3

The first price row belongs to Ingredient 1; the second belongs to Ingredient 2. Matching dimensions are insufficient if this ingredient order is wrong. Use the same unit definitions on both sides.

Leave G2:H4 empty. Put =MMULT(A2:B4;D2:E3) in G2. The expected result is:

Row G: Scenario A cost H: Scenario B cost
2 12 15
3 11 15
4 24 30

For example, G2 is 2×5+1×2=12. H3 is 1×6+3×3=15. The input quantities are units per recipe and the prices are cost per unit, so each output is cost per recipe under its scenario.

Verify each cell with ordinary arithmetic

Put =A2*$D$2+B2*$D$3 in J2 and fill through J4. Put =A2*$E$2+B2*$E$3 in K2 and fill through K4. The anchored price references remain fixed while the recipe row changes.

In M2 enter =G2-J2, and in N2 enter =H2-K2; fill both through row 4. All six expected differences are 0. The J/K results should reproduce 12,11,24 and 15,15,30.

On a separate copy named HigherIngredient2, change D3 from 2 to 4, leaving every other input unchanged. The Scenario A results become 14,17,28, increases of 2,6,4. The Scenario B results remain 15,15,30. The increases equal the Ingredient 2 quantities multiplied by the two-unit price change.

The independent J/K checks should still agree, so M/N remain zero. This is a useful sensitivity check: changing one scenario price should not change the other scenario’s costs.

Advanced: reversing a square product

Create OrderMatters, with A1:K6. Enter the first matrix in A2:B3 and the second in D2:E3:

Matrix First row Second row
A2:B3 1, 2 0, 1
D2:E3 2, 0 3, 1

Leave G2:H3 and J2:K3 empty. In G2 enter =MMULT(A2:B3;D2:E3). In J2 enter =MMULT(D2:E3;A2:B3).

Output row G H J K
2 8 2 2 4
3 3 1 3 7

Both products are permitted two-by-two matrices, but they differ. The first top-left result is 1×2+2×3=8; reversing the order makes it 2×1+0×0=2.

If you instead multiplied matching cells of the two inputs, you would obtain rows 2,0 and 0,1. That third array is an elementwise product, not either matrix product. Neither PRODUCT nor the * operator applied independently to each cell is a substitute for the row-by-column operation.

Dimensions, alignment and practical errors

For RecipeCosts, a 3×2 matrix times a 2×2 matrix is valid and produces 3×2. Reversing those ranges asks for 2×2 times 3×2, whose inner dimensions differ. The official requirement rules that out, but the short entry does not identify a specific error token for every shape mismatch.

A matching number of entries is not enough: a 1×4 row and a 2×2 square each contain four values but have different shapes. Count rows and columns separately, then verify that the shared dimension represents the same ordered entities.

MINVERSE and MUNIT provide useful multiplication controls. When a square matrix has an inverse, their product is mathematically the identity; actual residuals remain subject to numeric precision.

The examples contain ordinary numeric cells and use semicolons between multiple arguments, matching the English function references. Check the formula separators in your workbook. Source blanks, numeric text, Boolean values, existing error cells and imported array formulas are outside the tested mathematical fixtures.