Gibt es eine präzise Excel-Formel zur Berechnung von (A1 * A6) + (B1 * B6) + (C1 * C6)…?


45

Ich möchte wissen, wie man eine kurze Formel für die folgende lange Formel in einer Excel-Tabelle erstellt:

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

Benutze ich eine Summenfunktion oder gibt es dafür eine andere Funktion? Ich denke, der Doppelpunkt mit der SUMFunktion sollte helfen, aber ich weiß nicht, wie man es benutzt.


4
Mögliches Duplikat (standortübergreifend) von Excel: Skalarprodukt aus zwei Bereichen
Stapelüberlauf


7
Mathematisch ist dies als Skalarprodukt oder Skalarprodukt bekannt. Hilfreiche Begriffe, wenn Sie jemals Ihre Lieblingssuchmaschine verwenden müssen.
Philip Kendall

inneres Produkt: Normalerweise würden wir dieses Problem so umsetzen, dass man es tun würde (A1 * B1 + A2 * B2 + C3 * B3 ....) .... Natürlich ist dies nur Notation ...
JosephDoggie

Antworten:


110

Sie suchen die Funktion SUMPRODUCT .

=SUMPRODUCT(A1:C1,A6:C6)

Dies gibt die Summe der Produkte der entsprechenden Artikel in zwei (oder mehr) Bereichen zurück.

Bildbeschreibung hier eingeben

Wie Sie der von mir verlinkten Microsoft-Dokumentation entnehmen können, müssen die Bereiche keine einzelnen Zeilen oder Spalten sein (obwohl sie die gleichen Abmessungen haben müssen).

SUMPRODUCT kann Werte aus bis zu 255 verschiedenen Bereichen multiplizieren. Zum Beispiel =SUMPRODUCT(A1:C1,A6:C6,A11:C11)ist das gleiche wie =A1*A6*A11+B1*B6*B11+C1*C6*C11.


19

SUMFunktion funktioniert nicht, da sie nur die Elemente hinzufügt. Sie müssen die Werte vor der Übergabe an SUM wie multiplizieren=SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)

Natürlich können Sie auch verwenden, =A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6was zum gleichen Schreibaufwand führt wieSUM

Es gibt viele bessere Lösungen. Eine Möglichkeit ist die Verwendung einer Array-Formel . Sie können ein genaues Beispiel wie das Ihre dort sehen:

Matrixformelsyntax

Im Allgemeinen verwenden Array-Formeln die Standardformelsyntax. Sie beginnen alle mit einem Gleichheitszeichen (=), und Sie können die meisten integrierten Excel-Funktionen in Ihren Array-Formeln verwenden. Der Hauptunterschied besteht darin, dass Sie bei Verwendung einer Matrixformel Ctrl+ Shift+ drücken Enter, um Ihre Formel einzugeben. Wenn Sie dies tun, umgibt Excel Ihre Matrixformel mit geschweiften Klammern. Wenn Sie die geschweiften Klammern manuell eingeben, wird Ihre Formel in eine Textzeichenfolge konvertiert und funktioniert nicht.

Array-Funktionen sind ein sehr effizienter Weg, um eine komplexe Formel zu erstellen. Die Matrixformel =SUM(C2:C11*D2:D11)ist wie folgt :

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

Um in Ihrem Fall eine Array-Formel zu verwenden, können Sie Folgendes eingeben (natürlich müssen Sie das letzte Element des Arrays entsprechend ändern)

=SUM(A1:E1*A6:E6)

und dann Ctrl+ Shift+ drückenEnter


Matrixformel ist ein sehr leistungsfähiges Werkzeug. Verwenden Sie es jedoch mit Vorsicht. Jedes Mal, wenn Sie es bearbeiten müssen, dürfen Sie nicht vergessen, Ctrl+ Shift+ zu drückenEnter

Warum Arrayformeln verwenden?

Wenn Sie Erfahrung mit Formeln in Excel haben, wissen Sie, dass Sie einige recht komplexe Vorgänge ausführen können. Sie können beispielsweise die Gesamtkosten eines Kredits für eine beliebige Anzahl von Jahren berechnen. Sie können Array-Formeln verwenden, um komplexe Aufgaben auszuführen, z.

  • Zählen Sie die Anzahl der Zeichen, die in einem Zellbereich enthalten sind.

  • Summieren Sie nur Zahlen, die bestimmte Bedingungen erfüllen, z. B. die niedrigsten Werte in einem Bereich oder Zahlen, die zwischen einer oberen und einer unteren Grenze liegen.

  • Summiere jeden n-ten Wert in einem Wertebereich.

Array-Formeln bieten auch diese Vorteile:

  • Konsistenz: Wenn Sie auf eine der Zellen abwärts von E2 klicken, wird dieselbe Formel angezeigt. Diese Konsistenz kann zu einer höheren Genauigkeit beitragen.

  • Sicherheit: Sie können eine Komponente einer Matrixformel mit mehreren Zellen nicht überschreiben. Klicken Sie beispielsweise auf Zelle E3 und drücken Sie die Entf-Taste. Sie müssen entweder den gesamten Zellenbereich (E2 bis E11) auswählen und die Formel für das gesamte Array ändern oder das Array unverändert lassen. Als zusätzliche Sicherheitsmaßnahme müssen Sie Ctrl+ Shift+ drücken Enter, um die Änderung der Formel zu bestätigen.

  • Kleinere Dateigrößen: Sie können häufig eine einzelne Matrixformel anstelle mehrerer Zwischenformeln verwenden. In der Arbeitsmappe wird beispielsweise eine Matrixformel zur Berechnung der Ergebnisse in Spalte E verwendet. Wenn Sie Standardformeln (z. B. = C2 * D2, C3 * D3, C4 * D4…) verwendet hätten, hätten Sie 11 verschiedene Formeln zur Berechnung verwendet die gleichen Ergebnisse.

Es ist auch schneller, da das Zugriffsmuster bereits bekannt ist. Anstatt nun elf verschiedene Berechnungen separat durchzuführen, kann dies unter Verwendung mehrerer Kerne und einer SIMD-Einheit in der CPU vektorisiert und parallel ausgeführt werden


7
Beachten Sie jedoch, dass Array-Funktionen sehr zerbrechlich sind. Wenn Sie sie zum Beispiel kopieren und einfügen, kann es sehr schlimm werden. Häufig werden sie ohne ein erzwungenes Update nicht korrekt aktualisiert, wenn sie sehr groß sind. Tolles, leistungsstarkes Feature, aber im Vergleich zu regulären Formeln ausdauernd.
JKreft

3
@StianYttervik: Ich denke, die Antwort ist nützlich. Was ist, wenn jemand ein Blatt mit einer solchen Formel öffnet und es noch nie gesehen hat? Diese Antwort wäre hilfreich für diese Benutzer.
Bad_Bishop

3
@StianYttervik Array-Formel ist ein mächtiges Werkzeug in der richtigen Hand. Es ist überhaupt nicht langsam , da es einfacher optimiert und vektorisiert werden kann. Und es spart Speicher. Sogar Google Docs unterstützen dies. Und antworte nicht darauf. Ich werde nicht weiter antworten
phuclv

2
@StianYttervik Bestimmte Funktionen (z. B. MOD) SUMPRODUCTbrechen ab und müssen dann durch eine Array-Formel ersetzt werden. Ganz zu schweigen von der Tatsache, dass in jeder veröffentlichten Version von Office noch häufiger verwendete Array-Formeln als offizielle Funktionen hinzugefügt wurden (z. B. MAXIFSin 365). Wenn Ihre Array-Formel langsam, klobig und fehlerhaft ist, müssen Sie wahrscheinlich Ihren Code optimieren. Und natürlich - da PowerQuery eine zusätzliche Add-In-Erweiterung ist, werden viele Unternehmen es (aus verschiedenen Gründen) nicht in ihr Corporate-Build-Paket aufnehmen, was es zu einer minderwertigen Lösung für verteilte Geschäftszwecke macht.
Chronocidal

1
@Chronocidal Ja, es gibt Fälle, aber es gibt nur wenige ... Und dann sind Stromabfragen die Lösung. Oder das Datenmodell. Oder Würfelfunktionen. Oder all das oben. Arrays und die zeilenweise Berechnung / Ausführung können einfach nicht mithalten.
Stian Yttervik

7

Ein anderer Ansatz ist, A7 den Ausdruck = A1 * A6 einzugeben und so weit wie möglich nach rechts zu kopieren, und dann die Zeile $ 7 $ zu summieren, um die endgültige Antwort zu erhalten. Es funktioniert nicht in einer Zelle, wie Sie es möchten, aber manchmal ist es praktisch, die Zwischenprodukte zu haben. Ich habe beide Versionen benutzt. Dieser fühlt sich für mich exzellent an, aber Ihr Geschmack kann davon abweichen.


1

Wenn Sie eine Liste von Zahlen in Spalten anstelle von Zeilen einfügen (z. B. zwei Spalten A und B), können Sie die Funktion = Summenprodukt (A: A, B: B) so verwenden. Sie erhalten das Produkt aus so vielen Zahlen, wie es in den Spalten A und B gibt.

Sie können so viele Spalten in der Sumproduct-Funktion verwenden, wie Sie benötigen


2
Summenprodukt (1: 1,2: 2) funktioniert auf die gleiche Weise auch für Zeilen.
Máté Juhász

0

Wenn in den Zeilen 1 und 6 nichts anderes steht als das, wofür Sie ein haben möchten SUMPRODUCT(), können Sie die in diesem Kommentar erwähnte Idee verwenden . In Ihrem Fall, wie in Ihrer Frage umrissen, würden Sie verwenden=SUMPRODUCT(1:1,6:6)


4
Dies liefert keine zusätzlichen Informationen zu den bereits eingegebenen Antworten und Kommentaren.
Máté Juhász

1
@ MátéJuhász - Welche Antwort liefert meine Antwort? Ihr Kommentar zu der Antwort von @AjayC gibt SUMPRODUCT(1:1,2:2)eine Antwort, und ich habe auf der Grundlage dieses Kommentars eine Antwort gegeben, in der erläutert wird, wie er auf der Grundlage der ursprünglichen Frage verwendet werden kann und welche Einschränkung dies bedeuten würde.
Chris Rogers
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.