2014-02-20 2 views
1

Согласно документации Microsoft, MMULT возвращает матричный продукт двух массивов, в то время как SUMPRODUCT умножает соответствующие компоненты в заданных массивах и возвращает сумму этих продуктов.В каких ситуациях я не могу использовать SUMPRODUCT вместо MMULT?

Я не вижу, в каких ситуациях я не могу использовать SUMPRODUCT вместо MMULT. А я чего-то не хватает?

+0

Вы видели требование MMULT о том, что «количество * столбцов * в массиве1 должен быть таким же, как число * строк * в массиве2 ", правильно? Это не то, что ожидает 'SUMPRODUCT'. Изменить: Барри дает гораздо лучшее объяснение. –

ответ

5

SUMPRODUCT позволяет работать только на массивах одинакового размера, чтобы получить единственный результат.

MMULT может умножать массивы разного размера (при условии соблюдения правил), чтобы дать вам результат массива.

Правило о том, что первый аргумент MMULT должен иметь столько столбцов, как второй аргумент имеет строки, так что вы можете использовать эту формулу, например

=MMULT(A3:C6,E3:E5)

где первый массив 4 * 3 (4 строки по 3 столбца), а второй аргумент - 3 * 1 (3 строки по 1 столбцу) и возвращает 4 * 1 массив

+0

О, хорошо, спасибо. Короче говоря, 'SUMPRODUCT' вычисляет точечный продукт (не было бы более понятным назвать его' DOTPRODUCT'?), В то время как 'MMULT' является матричным умножением (иногда имена функций получают сокращенно, иногда нет). Извините, я запутался по какой-либо причине (может быть, вопрос размерности?) 'MMULT' работает только с 2 входами, в то время как' SUMPRODUCT' работает с входами от 2 до 30 (почему 30?). –

+1

Является "dot product" для векторов? 'SUMPRODUCT' все еще может использовать матрицы - если они имеют одинаковый размер и форму, например. '= SUMPRODUCT (A1: D5, E2: H6)' - 30 является пределом в Excel 2003, не знаю почему, но также применяется ко многим другим функциям - в более поздних версиях предел равен 255 –

+0

Хорошая точка, точечный продукт для только вектор, более правильным термином будет [поэтапное умножение] (http://www.mathworks.com/help/fixedpoint/ref/times.html) или умножение по элементам, но да, оно начинает имя функции слишком длинное. Во всяком случае, так долго с условиями, спасибо за объяснение! –

Смежные вопросы