Существует ли краткая формула Excel для расчета (A1 * A6) + (B1 * B6) + (C1 * C6)…?

45

Я хочу знать, как дать краткую формулу для следующей длинной формулы в листе Excel:

= (A1*A6)+(B1*B6)+(C1*C6)...

Я использую функцию суммы или есть другая функция для этого? Я думаю, что использование двоеточия с SUMфункцией должно помочь, но я не знаю, как его использовать.

rukuto
источник
7
Математически это называется точечным произведением или скалярным произведением. Полезные термины, если вам когда-либо понадобится ваша любимая поисковая система.
Филипп Кендалл
Внутренний продукт: Как правило, мы переносим эту проблему так, чтобы это можно было сделать (A1 * B1 + A2 * B2 + C3 * B3 ....) .... Конечно, это только обозначения ...
JosephDoggie

Ответы:

110

Вы ищете функцию SUMPRODUCT .

=SUMPRODUCT(A1:C1,A6:C6)

Это вернет сумму произведений соответствующих предметов в двух (или более) диапазонах.

введите описание изображения здесь

Как видно из документации Microsoft, на которую я ссылался, диапазоны не обязательно должны быть одиночными строками или столбцами (хотя они должны иметь одинаковые размеры).

SUMPRODUCT может умножать значения до 255 различных диапазонов. Например так =SUMPRODUCT(A1:C1,A6:C6,A11:C11)же, как =A1*A6*A11+B1*B6*B11+C1*C6*C11.

Черное дерево
источник
19

SUMфункция не будет работать, так как она просто добавляет элементы. Вам нужно умножить значения перед переходом к сумме, как=SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)

Конечно, вы также можете использовать, =A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6что приводит к тому же печатному усилию, что иSUM

Есть много лучших решений. Одним из способов является использование формулы массива . Там вы можете увидеть точный пример, подобный вашему:

Синтаксис формулы массива

Как правило, формулы массива используют стандартный синтаксис формул. Все они начинаются со знака равенства (=), и вы можете использовать большинство встроенных функций Excel в формулах массива. Основное отличие состоит в том, что при использовании формулы массива вы нажимаете Ctrl+ Shift+, Enterчтобы ввести формулу. Когда вы делаете это, Excel окружает формулу массива фигурными скобками - если вы введете фигурные скобки вручную, ваша формула будет преобразована в текстовую строку, и она не будет работать.

Функции Array - это действительно эффективный способ построения сложной формулы. Формула массива =SUM(C2:C11*D2:D11)такая же, как эта:

=SUM(C2*D2,C3*D3,C4*D4,C5*D5,C6*D6,C7*D7,C8*D8,C9*D9,C10*D10,C11*D11).

Чтобы использовать формулу массива в вашем случае, вы можете напечатать (конечно, вам нужно соответственно изменить последний элемент массива)

=SUM(A1:E1*A6:E6)

а затем нажмите Ctrl+ Shift+Enter


Формула массива является очень мощным инструментом. Однако используйте это с осторожностью. Каждый раз, когда вам нужно отредактировать его, вы не должны забывать нажать Ctrl+ Shift+Enter

Зачем использовать формулы массива?

Если у вас есть опыт использования формул в Excel, вы знаете, что можете выполнять довольно сложные операции. Например, вы можете рассчитать общую стоимость кредита за любое заданное количество лет. Вы можете использовать формулы массива для выполнения сложных задач, таких как:

  • Подсчитайте количество символов, которые содержатся в диапазоне ячеек.

  • Суммируйте только числа, которые соответствуют определенным условиям, например, самые низкие значения в диапазоне или числа, которые находятся между верхней и нижней границами.

  • Суммируйте каждое n-е значение в диапазоне значений.

Формулы массива также предлагают следующие преимущества:

  • Согласованность: если щелкнуть любую ячейку от E2 вниз, вы увидите ту же формулу. Эта последовательность может помочь обеспечить большую точность.

  • Безопасность: вы не можете перезаписать компонент формулы массива из нескольких ячеек. Например, щелкните ячейку E3 и нажмите «Удалить». Вы должны либо выбрать весь диапазон ячеек (от E2 до E11) и изменить формулу для всего массива, либо оставить массив как есть. В качестве дополнительной меры безопасности вы должны нажать Ctrl+ Shift+, Enterчтобы подтвердить изменение формулы.

  • Меньшие размеры файлов: часто вы можете использовать формулу одного массива вместо нескольких промежуточных формул. Например, рабочая книга использует одну формулу массива для вычисления результатов в столбце E. Если бы вы использовали стандартные формулы (такие как = C2 * D2, C3 * D3, C4 * D4 ...), вы бы использовали 11 различных формул для вычисления те же результаты.

Это также быстрее, так как схема доступа уже известна. Теперь вместо 11 различных вычислений по отдельности его можно векторизовать и выполнять параллельно, используя несколько ядер и SIMD-модуль в ЦП.

phuclv
источник
7
Однако следует помнить, что функции массива очень хрупкие. Например, если вы скопируете и вставите их, все может очень плохо сломаться. Часто они не будут корректно обновляться без принудительного обновления, если они очень большие. Отличная, мощная функция, но привередливая по сравнению с обычными формулами.
JKreft
3
@StianYttervik: я думаю, что ответ полезен. Что если кто-то откроет лист с такой формулой и никогда не видел ее раньше? Этот ответ будет полезен для этих пользователей.
Bad_Bishop
3
@StianYttervik формула массива является мощным инструментом в правильной руке. Это совсем не медленно , так как его легче оптимизировать и векторизовать. И это сохраняет память. Даже Google Документы поддерживают это. И не отвечай на это. Я не буду больше отвечать
phuclv
2
@StianYttervik Определенные функции (например MOD) могут привести SUMPRODUCTк сбою , а затем вам придется заменить его формулой Array. Не говоря уже о том, что каждая выпущенная версия Office имеет еще более часто используемые формулы массивов, добавленные в качестве официальных функций (например, MAXIFSв 365). Если ваша формула массива медленная, неуклюжая и ломкая, вам, вероятно, необходимо оптимизировать код. И, конечно же - поскольку PowerQuery является дополнительным расширением надстройки, многие компании (по разным причинам) не включают его в свой пакет корпоративной сборки, что делает его худшим решением для распределенных бизнес-целей.
хроноцид
1
@ Chronocidal Да, есть случаи, но их немного ... И тогда силовые запросы - это решение. Или модель данных. Или куб функции. Или все вышеперечисленное. Массивы и построчное вычисление / выполнение просто не могут соответствовать.
Стиан Иттервик,
7

Другой подход состоит в том, чтобы вставить в A7 выражение = A1 * A6 и скопировать его так, как вам нужно, затем сложить строку $ 7 $, чтобы получить окончательный ответ. Он не делает это в одной ячейке, как вы хотите, но иногда полезно иметь промежуточные продукты. Я использовал обе версии. Это мне больше по вкусу, но ваш вкус может отличаться.

Росс Милликен
источник
1

если вы поместите список чисел в столбцы вместо строк (скажем, в два столбца A и B), вы можете использовать функцию = Sumproduct (A: A, B: B) следующим образом. это даст вам произведение столько же чисел, сколько в столбцах A и B.

Вы можете использовать столько столбцов в функции Sumproduct, сколько вам нужно

AjayC
источник
2
Sumproduct (1: 1,2: 2) работает так же и для строк.
Máté Juhász
0

Если в строках 1 и 6 нет ничего, кроме того, для чего вы хотите получить SUMPRODUCT(), вы можете использовать идею, упомянутую в этом комментарии . В вашем случае, как указано в вашем вопросе, вы бы использовали=SUMPRODUCT(1:1,6:6)

Крис Роджерс
источник
4
Это на самом деле не дает дополнительной информации поверх того, что уже введено в ответах и ​​комментариях.
Матэ Юхас
1
@ MátéJuhász - Какой ответ дает мой ответ? Ваш комментарий к ответу, предоставленному @AjayC, дает, SUMPRODUCT(1:1,2:2)и я предоставил ответ, основанный на этом комментарии, в котором поясняется, как его можно использовать, основываясь на исходном вопросе, и каково будет ограничение для этого.
Крис Роджерс