MMULT in its essnce is not a C-S-E formula, it multiplies n columns by n rows and retunrs a scalar.

What is the issue you are referring to?
Maybe you use MMUULT() for a specific purpose (perhaps nested within another function) and somehow utilize a 'scalar' result.

But, by definition 1 Matrix Multiplying another matrix will virtually alway yield another matrix.

Moreover, give some matrix A and another matrix B, if the two are multiplicatively conformable, then their product is a matrix, let's call it C, whose elements are linear combinations of the rows of A with the columns of B.

In order for two matrices to be considered multiplicatively conformable the number of columns in the first matrix must = the number of rows in the second.

That is if A is a m x n matrix and B is a p x q matrix, then A and B are multiplicatively conformable iff n = p.

The resultant matrix C will have dimensions m x q.

So this last point is important when utilizing MMULT() You must pre-determine the resultant matrix's dimensions in order to execute MMULT properly.

Example below: The top-left matrix is dimensions: 3 x 2 and the top-right is 2 x 2

Therefore, in order to get the resultant (bottom) matrix, you must highlight a 3 x 2 range before entering MMULT(Array1, Array2) and then press C-S-E.





There are 3 wrong ways to use MMULT() and they all result in the same answer:

If you do not highlight the result matrix's range and press either 'Enter' or 'C-S-E' it will return ONLY the first element of the resultant array.

If you do highlight the result matrix's range BUT do not press 'C-S-E' the 1st element of the resultant will be returned.

You dig? Or am I just telling you stuff you already know?

P.S. Did you mean to answer Question 5 and it was cut off? Or is it still up in the air?