Я хочу знать, как дать краткую формулу для следующей длинной формулы в листе Excel:
= (A1*A6)+(B1*B6)+(C1*C6)...
Я использую функцию суммы или есть другая функция для этого? Я думаю, что использование двоеточия с SUM
функцией должно помочь, но я не знаю, как его использовать.
Ответы:
Вы ищете функцию SUMPRODUCT .
Это вернет сумму произведений соответствующих предметов в двух (или более) диапазонах.
Как видно из документации Microsoft, на которую я ссылался, диапазоны не обязательно должны быть одиночными строками или столбцами (хотя они должны иметь одинаковые размеры).
SUMPRODUCT может умножать значения до 255 различных диапазонов. Например так
=SUMPRODUCT(A1:C1,A6:C6,A11:C11)
же, как=A1*A6*A11+B1*B6*B11+C1*C6*C11
.источник
SUM
функция не будет работать, так как она просто добавляет элементы. Вам нужно умножить значения перед переходом к сумме, как=SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)
Конечно, вы также можете использовать,
=A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6
что приводит к тому же печатному усилию, что иSUM
Есть много лучших решений. Одним из способов является использование формулы массива . Там вы можете увидеть точный пример, подобный вашему:
Чтобы использовать формулу массива в вашем случае, вы можете напечатать (конечно, вам нужно соответственно изменить последний элемент массива)
а затем нажмите Ctrl+ Shift+Enter
Формула массива является очень мощным инструментом. Однако используйте это с осторожностью. Каждый раз, когда вам нужно отредактировать его, вы не должны забывать нажать Ctrl+ Shift+Enter
Это также быстрее, так как схема доступа уже известна. Теперь вместо 11 различных вычислений по отдельности его можно векторизовать и выполнять параллельно, используя несколько ядер и SIMD-модуль в ЦП.
источник
MOD
) могут привестиSUMPRODUCT
к сбою , а затем вам придется заменить его формулой Array. Не говоря уже о том, что каждая выпущенная версия Office имеет еще более часто используемые формулы массивов, добавленные в качестве официальных функций (например,MAXIFS
в 365). Если ваша формула массива медленная, неуклюжая и ломкая, вам, вероятно, необходимо оптимизировать код. И, конечно же - поскольку PowerQuery является дополнительным расширением надстройки, многие компании (по разным причинам) не включают его в свой пакет корпоративной сборки, что делает его худшим решением для распределенных бизнес-целей.Другой подход состоит в том, чтобы вставить в A7 выражение = A1 * A6 и скопировать его так, как вам нужно, затем сложить строку $ 7 $, чтобы получить окончательный ответ. Он не делает это в одной ячейке, как вы хотите, но иногда полезно иметь промежуточные продукты. Я использовал обе версии. Это мне больше по вкусу, но ваш вкус может отличаться.
источник
если вы поместите список чисел в столбцы вместо строк (скажем, в два столбца A и B), вы можете использовать функцию = Sumproduct (A: A, B: B) следующим образом. это даст вам произведение столько же чисел, сколько в столбцах A и B.
Вы можете использовать столько столбцов в функции Sumproduct, сколько вам нужно
источник
Если в строках 1 и 6 нет ничего, кроме того, для чего вы хотите получить
SUMPRODUCT()
, вы можете использовать идею, упомянутую в этом комментарии . В вашем случае, как указано в вашем вопросе, вы бы использовали=SUMPRODUCT(1:1,6:6)
источник
SUMPRODUCT(1:1,2:2)
и я предоставил ответ, основанный на этом комментарии, в котором поясняется, как его можно использовать, основываясь на исходном вопросе, и каково будет ограничение для этого.