It's really hard for me to explain....
As per the definition of the function MMULT by MS in Excel help:
Returns the matrix product of two arrays. The result is an array with the same number of rows as array1 and the same number of columns as array2.
So Array1 is 4 columns by 75 rows (your table) and Array2 is 1 column by 4 rows (the virtual table {1;1;1;1}) to get a result of 75 rows by 1 column... each of these rows is the result of testing each element of each row against criteria M2. So a a match is considered when any of these row results has a value greater than 0... since the -- converts TRUE/FALSE to 0/1... coincidentally the formula as it stands will only work if there is one exact match of Dx number in the 4 columns... the better formula might be:
The Match(1,... then checks for the first 1 in the array produced by multiplying the 2 criteria (Data!$A$2:$A$75=$A2) and (MMULT(--(Data!$M$2:$P$75=$M2),{1;1;1;1})>0) together (remember that TRUE*TRUE=1 and all other combos = 0).
I suggest you change the 75's to 7's temporarily, and use the formula Evaluation tool to better see the concept in action without too much elements...
Bookmarks