Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1240to1244
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SummenProdukt

SummenProdukt
Websnake75
Hallo,
ich habe folgendes Problem:
Meine Tabelle hat folgende Spalten Persk, Name, Betrag, KST. Jetzt frage ich über SummenProdukt die Spalte Persk ab und möchte dann das Ergebnis aus der Spalte Betrag haben.
Das funktioniert auch soweit. Ich habe aber in der Spalte Name Zahlen eingegeben, denn sobald dort Text steht geht ja SummenProdukt nicht mehr.
Die Spalten Name, Betrag und KST können auch ihre Reihenfolge ändern, deshalb kann ich auch nicht einfach SummeWenn nehmen.
Gibt es eine Funktion, die wie SummenProdukt mir das Ergebnis liefert, bei der es aber egal ist ob eine der Spalten mit Text bestückt ist?
Ich hänge mein Beispiel mal dran.
https://www.herber.de/bbs/user/77793.xlsx
Gruß
Ronald

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: SummenProdukt
02.12.2011 15:12:52
Hajo_Zi
Hallo Roland,
vielleicht Summewenns()

=SummenProdukt(Bereich.Verschieben())
02.12.2011 15:19:55
NoNet
Hallo Ronald,
gib in H2 folgende Funktion ein, dann spielt die Reihenfolge der Spalten keine Rolle mehr :
=SUMMENPRODUKT((BEREICH.VERSCHIEBEN($A$2:$A$999;;VERGLEICH("Persk";$A$1:$D$1;0)-1)=G2)*(BEREICH.VERSCHIEBEN($A$2:$A$999;;VERGLEICH("Betrag";$A$1:$D$1;0)-1)))
Gruß, NoNet
AW: =SummenProdukt(Bereich.Verschieben())
02.12.2011 16:48:28
Websnake75
Hallo NoNet,
Deine Methode funktioniert super, nur verstehe ich sie nicht. Kannst Du mir nochmal helfen?
Also:
1. VERGLEICH("Persk";$A$1:$D$1;0) = 1, weil Persk in Spalte 1 steht
2. VERGLEICH("Betrag";$A$1:$D$1;0) = 3, weil Betrag in Spalte 3 steht
aber dann
3. =BEREICH.VERSCHIEBEN(A2:A18;;VERGLEICH("Persk";$A$1:$D$1;0)-1) da kommt 0 bei mir raus
ebenso
4. =BEREICH.VERSCHIEBEN(A2:A18;;VERGLEICH("Betrag";$A$1:$D$1;0)-1) da kommt bei mir auch die 0
somit weiß ich jetzt auch nicht was SummenProdukt jetzt da rechnet.
Anzeige
3. und 4. werden als MATRIX interpretiert !
02.12.2011 17:06:27
NoNet
Hallo Websnake,
1. und 2. ist korrekt, das hast Du richtig verstanden.
zu 3. und 4. : Um diese Ergebnisse zu überprüfen, solltest Du diese Funktionen als MATRIX-Funktion eingeben bzw. in der Bearbeitungszeile diesen Teil der Funktion markieren und dann per F9-Taste das Zwischenergebnis anzuzeigen :
Das Ergebnis ist jeweils eine Wertematrix (mit den Werten aus z.B. A2:A999), die in der SUMMENPRODUKT()-Funktion einzeln ausgewertet werden - das ist eine spezielle Eigenschaft der SUMMENPRODUKT()-Funktion, die Ergebnisse automatisch als MATRIX zu interpretieren !
Das bei dieser Funktion 0 als Ergebnis resultiert, kann ich nicht nachvollziehen, denn wenn man diese Funktionen nicht als MATRIX-Funktion eingibt, kommt zumindest der erste Wert heraus.
Welche Werte stehen denn bei Dir in A2:D2 ?
Gruß, NoNet
Anzeige
AW: =SummenProdukt(Bereich.Verschieben())
Luschi
Hallo Ronald,
hier noch ein paar zusätzliche Worte zu der zusammengesetzten Formel von NoNet
Wenn man davon ausgeht, das die Überschriften 'Persk' und 'Betrag' immer in der 1. bzw. 3. Spalte stehen, dann würde die Formel so aussehen:
=SUMMENPRODUKT((A2:A19=G2)*(C2:C19)) und das Ergebnis ist 700.
Jetzt kommt aber hinzu, daß man die Spalten für 'Persk' und 'Betrag' erst ermitteln muß. Das machen die beiden Vergleichs()-Funktionen 1. und 2.
Die erste Bereich.Verschieben()-Funktion kriegt jetzt den Auftrag, den Bereich A2:A19 um 0 (Null) Spalten zu verschieben [Vergleich() ermittelt 1. Spalte für 'Persk' und Nonet hat diesen Wert mit -1 summiert]; also macht die 1. Bereich.Verschieben()-Funktion eigenlich garnichts und gibt der SummenProdukt()-Formel den Bereich A2:A19 mit auf den Weg.
Die zweite Bereich.Verschieben()-Funktion kriegt die Anweisung, den Bereich A2:A19 um 2 Spalten zu verschieben (3. Spalte für 'Betrag' -1) und ermittelt so den Bereich C2:C19.
Die SummenProdukt()-Formel ist eine Art Matrix-Funktion. Gemäß Anweisung (A2:A19=G2) durchläuft sie den Bereich A2:A19 und schaut, in welche dieser Zellen steht auch der Wert von G2 (hier 1); und dementsprechend addiert sie die korrespondierenden Zellwerte im Bereich C2:C19.
Hinweis:
Will man den Zellbereich der Bereich.Verschieben()-Funktionen sich im Tabellenblatt anzeigen lassen, dann so:
1. Strg+F3 (Namensmanager aufrufen)
2. neuen Name definieren
3. im Feld 'Bezieht sich auf' die Formel kopieren
BEREICH.VERSCHIEBEN($A$2:$A$19;;VERGLEICH("Betrag";$A$1:$D$1;0)-1)
4. Eingabe bestätigen
5. Cursor ins Feld 'Bezieht sich auf' klicken
6. Datenbereich wird von Excel umstrichelt markiert.
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige