Чи існує коротка формула Excel для обчислення (A1 * A6) + (B1 * B6) + (C1 * C6)…?


46

Я хочу знати, як дати коротку формулу для наступної довгої формули в аркуші Excel:

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

Чи можу я використовувати функцію суми або є інша функція для цього? Я думаю, що використання двокрапки з SUM функція повинна допомогти, але я не знаю, як її використовувати.




7
Математично це відоме як точковий продукт або скалярний продукт. Корисні умови, якщо вам коли-небудь знадобиться використовувати улюблену пошукову систему.
Philip Kendall

Внутрішній продукт: Як правило, ми б перенесли цю проблему так, що можна було б зробити (A1 * B1 + A2 * B2 + C3 * B3 ....) .... Звичайно, це тільки позначення ...
JosephDoggie

Відповіді:


111

Ви шукаєте SUMPRODUCT функції.

=SUMPRODUCT(A1:C1,A6:C6)

Це поверне суму продуктів відповідних позицій у двох (або більше) діапазонах.

enter image description here

Як ви можете бачити з документації Microsoft, з якою я зв'язався, діапазони не повинні бути єдиними рядками або окремими стовпцями (хоча вони повинні мати однакові розміри).

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


19

SUM Функція не буде працювати, оскільки вона просто додає елементи. Потрібно помножити значення перед передачею на 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 оточує формулу масиву фігурними дужками - якщо ви вводите фігурні дужки вручну, формула буде перетворена в текстовий рядок, і вона не працюватиме.

Функції масивів є дійсно ефективним способом побудови складної формули. Формула масиву =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 і натисніть Delete. Ви повинні або вибрати весь діапазон осередків (E2 - E11) і змінити формулу для всього масиву, або залишити масив, як є. У якості додаткового заходу безпеки необхідно натиснути Ctrl + Shift + Enter для підтвердження зміни формули.

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

Це також швидше, оскільки шаблон доступу вже відомий. Тепер замість того, щоб робити 11 різних обчислень окремо, він може бути векторизований і виконаний паралельно, використовуючи кілька ядер і модуль SIMD в процесорі


7
Однак слід знати, що функції масиву дуже крихкі. Якщо ви скопіюєте і вставите їх, наприклад, все може погано побити. Часто вони не оновлюються правильно без примусового оновлення, якщо вони дуже великі. Велика, потужна особливість, але персність в порівнянні з звичайними формулами.
JKreft

3
@StianYttervik: Я думаю, що відповідь корисна. Що робити, якщо хтось відкриє лист з такою формулою і ніколи не бачив її раніше? Ця відповідь буде корисною для цих користувачів.
Bad_Bishop

3
Формула масиву @StianYttervik - це a потужний інструмент у правильній руці. Це не є повільним взагалі, оскільки він може бути легше оптимізований і векторизований. І це економить пам'ять. Навіть google документи підтримують його. І не відповідайте на це. Я більше не буду відповідати
phuclv

2
@StianYttervik Деякі функції (наприклад, MOD ) викличе SUMPRODUCT щоб розірвати, а потім потрібно замінити його формулою Array. Не кажучи вже про кожну випущену версію Office все ще використовуються формули Array, додані як офіційні функції (напр. MAXIFS in 365) Якщо ваша формула масиву повільна, незрозуміла, і розривається, вам, ймовірно, потрібно оптимізувати код. І, звичайно, оскільки PowerQuery є додатковим розширенням надбудови, багато компаній будуть (з різних причин) не включати його в свій Корпоративний пакет, що робить його неповноцінним рішенням для розподілених цілей бізнесу.
Chronocidal

1
@Chronocidal Так, є випадки, але їх мало ... А потім запит на харчування є рішенням. Або модель даних. Або функції куба. Або все вище. Масиви і розрахунок / виконання рядків за рядками просто не можуть вимірюватися.
Stian Yttervik

8

Інший підхід полягає в тому, щоб покласти в A7 вираз = A1 * A6 і скопіювати прямо, наскільки ви хочете, а потім підсумувати рядок $ 7 $, щоб отримати остаточну відповідь. Він не робить це в одній клітині, як хочеш, але іноді з проміжними продуктами зручно. Я використав обидві версії. Це більше відчуває мене, але ваш смак може відрізнятися.


1

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

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


2
Sumproduct (1: 1,2: 2) працює так само для рядків.
Máté Juhász

0

Якщо немає нічого іншого в рядках 1 і 6, крім того, що ви хочете мати a SUMPRODUCT() для, ви могли б використовувати цю ідею згаданих у цьому коментарі . У вашому випадку, як викладено у вашому питанні, ви будете використовувати =SUMPRODUCT(1:1,6:6)


4
Насправді це не дає додаткової інформації про те, що вже введено в відповіді та коментарі.
Máté Juhász

1
@ MátéJuhász - Яку відповідь дає моя відповідь? Ваш коментар до відповіді, наданої @AjayC, дає SUMPRODUCT(1:1,2:2) і я надав відповідь на основі цього коментаря, роз'яснивши, як він може бути використаний на основі початкового питання і яким буде обмеження.
Chris Rogers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.