Microsoft Excel

Herbers Excel/VBA-Archiv

Matrixformel mit Funktionen Max und Summenprodukt?

Betrifft: Matrixformel mit Funktionen Max und Summenprodukt? von: Peter
Geschrieben am: 03.11.2014 15:04:45

Guten Tag

Ich möchte eine Abfrage aus folgenden Spalten ziehen:

A) Jahr (numerisch)
B) Kategorie (Alfanumerisch)
C) Altersangabe (numerisch)
D) Betrag

Ich möchte der gesuchten Formel Jahr, Code und Alter übergeben und möchte als Ergebnis den Betrag erhalten.
In der Spalte A fehlen gewisse Jahre. Wenn beispielsweise 2015 fehlt, soll das nächst frühere Jahr berücksichtigt werden.

Mit meiner Formel bin ich nicht zum Ziel gekommen:

{=SUMMENPRODUKT(MAX($A$4:$A$24<=F7)*($B$4:$B$24=G7)*($C$4:$C$24=H7))}

Wobei in Zelle F7 das gesuchte Jahr, in G7 die Kategorie und in H7 eine Altersangabe steht.

Wer kann mir weiterhelfen?

Danke und Gruss, Peter

https://www.herber.de/bbs/user/93513.xlsm

  

Betrifft: AW: Matrixformel mit Funktionen Max und Summenprodukt? von: Peter Müller
Geschrieben am: 03.11.2014 15:20:35

Hallo,

vielleicht so:
Formel in L7

=WENN(SUMMEWENNS($D$4:$D$24;$A$4:$A$24;F7;$B$4:$B$24;G7;$C$4:$C$24;H7)=0;L6;SUMMEWENNS($D$4:$D$24; $A$4:$A$24;F7;$B$4:$B$24;G7;$C$4:$C$24;H7))


Gruß,
Peter


  

Betrifft: AW: Matrixformel mit Funktionen Max und Summenprodukt? von: Daniel
Geschrieben am: 03.11.2014 15:25:44

Hi

probier mal das, als Matrixformel:

{=SUMMEWENNS($D$4:$D$24;$A$4:$A$24;MAX(WENN($A$4:$A$24<=F7;WENN($B$4:$B$24=G7;WENN($C$4:$C$24=H7; $A$4:$A$24))));$B$4:$B$24;G7;$C$4:$C$24;H7) }

Gruß Daniel


  

Betrifft: AW: Matrixformel mit Funktionen Max und Summenprodukt? von: Peter
Geschrieben am: 03.11.2014 15:53:37

Hallo Peter und Daniel
Vielen Dank für die schnellen Antworten.
Das sind fast zwei identische Lösungen. Ich habe nun allerdings festgestellt, dass die die Formel von Peter den gesuchten Wert nicht liefert, wenn ich bei der hochgeladenen Beispielsmappe in Zelle A5 anstelle 2014 2013 eintrage. Bei Daniel wird für 2014 dann der 2013-er Wert übernommen (was korrekt ist, wenn für 2014 kein Wert vorhanden ist).

Nochmals vielen Dank und Gruss, Peter


  

Betrifft: AW: Matrixformel mit Funktionen Max und Summenprodukt? von: Luschi
Geschrieben am: 03.11.2014 16:04:11

Hallo Peter,

grundsätzlich ist die SUMMENPRODUKT()-Matrix-Formel genau dafür geeignet, nur sollte man auch wissen, das diese Funktion nicht mit Strg+Shift+Enter abgeschlossen wird sondern wie jede normale Funktion nur mit Enter. Die Vergleichsglieder werden einzeln geklammert und miteinander durch das Multiplikationszeichen verkettet. Dann sieht die Formel so aus:
=SUMMENPRODUKT(($A$4:$A$24=$F7)*($B$4:$B$24=$G7)*($C$4:$C$24=$H7);($D$4:$D$24))

Es gibt aber auch noch eine 2. Schreibweise:
=SUMMENPRODUKT(--($A$4:$A$24=$F7);--($B$4:$B$24=$G7);--($C$4:$C$24=$H7);($D$4:$D$24))
Hier werden die Bedingungen als Einzel-Arrays durch das Semikolon getrennt. Die '--' Berechnung ist notwendig, um aus logischen True/False-Werten in 1 bzw 0 umzuwandeln:
($A$4:$A$24=$F7) ergibt aus Excelsicht ein Array mit lauter Wahrheitswwerten für jede Zelle in der Bedingung.

Mehr zu Matrix-Formeln findest Du hier:
http://www.online-excel.de/excel/singsel.php?f=26
oder
https://www.video2brain.com/de/videotraining/excel-matrixformeln

Die Idee, wenn ein Jahr nicht vorhanden ist, einfach das Vorjahr oder das VorVorjahr in die Summenproduktformel zu packen ist keine gute Idee. Benutze hier die Wenn()-Funkion als Steuerung.

Gruß von Luschi
aus klein-Paris


  

Betrifft: Einspruch .... besser z.B. VERWEIS() ... von: neopa C (paneo)
Geschrieben am: 03.11.2014 17:06:37

Hallo Luschi @all,

... den Einspruch erhebe ich gegen die Aussage: "grundsätzlich ist die SUMMENPRODUKT()-Matrix-Formel genau dafür geeignet". Diese Funktion ist zwar dafür einsetzbar aber keinesfalls grundsätzlich geeignet. Auch wenn das ganze "Heerscharen" von Excelianern (leider) immer wieder tun.

Die Problemstellung wie auch das Grundanliegen des Fragestellers ist ein (S)VERWEIS() für mehrspaltige Suchkriterien . In vielen Fällen führt der Einsatz der Funktion SUMMENPRODUKT() bei entsprechenden Daten auch zum gewünschten Ergebnis, wie auch hier (mit Daniels Formelansatz), es ist und kann aber nicht ausgeschlossen werden, dass es zu falschen Ergebnissen führen kann, wenn die Daten nur leicht anders sind.

Wenn in hier im Beispiel in Spalte D Textwerte stünden, käme wohl niemand auf die Idee SUMMENPRODUKT() einzusetzen, sondern würde gleich auf INDEX() und VERGLEICH() oder INDEX() und MIN(WENN(...)) jeweils als MATRXformel zurückgreifen.

Oder auch wie ich, eine VERWEIS()-Formel (auch Matrixformel, die bloß des spez. Eingabenabschlusses nicht bedarf) einsetzen.

Hier z.B. so:

=VERWEIS(9;1/(A$1:A$99<=F7)/(B$1:B$99=G7)/(C$1:C$99=H7);D:D)
Bei fehlerhafter Datenstruktur/Datenwerten kommt es damit im ungünstigsten Fall zu vielleicht unerwünschten aber nicht wie bei SUMMENPRODUKT() zu falschen Ergebnissen.


Gruß Werner
.. , - ...


  

Betrifft: AW: Einspruch .... besser z.B. VERWEIS() ... von: Daniel
Geschrieben am: 03.11.2014 17:28:29

wobei der Verweis nur funktioniert, wenn die gesuchte Kombination in der Liste nur einmalig vorkommt.
Eine Summenbildung über mehrere Werte ist damit nicht möglich.
Ausserdem muss die Liste nach der Suchspalte des Verweises sortiert sein.

Gruß Daniel


  

Betrifft: AW: Einspruch .... besser z.B. VERWEIS() ... von: Luschi
Geschrieben am: 03.11.2014 17:47:05

Hallo Werner,

ebenfalls ganz großer Einspruch, da es in meiner Online-Hilfe keinen Hinweis darauf gibt, daß ich mit der VERWEIS()-Funktion eine Summenbildung realisieren kann oder arbeitest Du schon mit Windows 10 Preview & Echsel 2020.
Deine Formel gibt den Wert aus Spalte 'D' zurück, wo alle 3 Bedingungen das letzte mal erfüllt im Bereich erfüllt sind.

Hallo Daniel,
ebenfalls Einspruch, das die VERWEIS()-Funktionen keine Sortierung benötigen.

Gruß von Luschi
aus klein-Paris


  

Betrifft: meine Erklärung dazu ... von: neopa C (paneo)
Geschrieben am: 03.11.2014 18:46:36

Hallo Luschi,

... ich fand und finde in Peters Fragestellung keinen direkten Hinweis darauf, dass er eine Summenbildung sucht, außer den "indirekten", dass er die Funktion SUMMENPRODUKT() aufzeigte. Noch immer ist es für mich zumindest nicht eindeutig, was Peter wirklich als Ergebnis sucht, den Wert oder eine Summe. In dem Fall hätte ich mich hier auch gar nicht erst "eingemischt", da ich ja bereits schrieb, dass in diesem Fall Daniels Formel für die Beispieldaten ein korrektes Ergebnis ergibt.

Sollte Peter aber doch eine Summenbildung von Werten wünschen, dann war und ist mein Einspruch natürlich deplaziert und ich geh in mich.


Gruß Werner
.. , - ...


  

Betrifft: AW: meine Erklärung dazu ... von: Daniel
Geschrieben am: 03.11.2014 19:08:56

ausserdem liefert die Verweisfunktion unterschiedliche Ergebnisse, wenn die Ausgangstabelle auf- und absteigend nach Jahr sortiert.
https://www.herber.de/bbs/user/93519.xlsm
Gruß Daniel


  

Betrifft: dazu schrieb ich ,,, von: neopa C (paneo)
Geschrieben am: 03.11.2014 19:42:59

Hallo Daniel,

... und zwar in meinem ersten Beitrag "... Bei fehlerhafter Datenstruktur/Datenwerten kommt es damit im ungünstigsten Fall zu vielleicht unerwünschten ... Ergebnissen".
In dem von Dir nicht unberechtigt konstruierten Datenmanipulation eben zu jenen. Doch aus meiner vormaligen Sicht würde die Summenbildung bei der von mir konstruierten Datenmanipulation (z.B. ein D in B7 oder ...) die von mir gemeinten ungewollten Ergebnisse ergeben.

Aber wir brauchen dazu nicht weiter zu diskutieren. Sollte ich mit meiner Interpretation der Aufgabenstellung falsch gelegen haben, habe ich mich ja schon Luschi gegenüber, an dem mein Einspruch gerichtet war, geäußert.


Gruß Werner
.. , - ...


  

Betrifft: AW: Einspruch .... besser z.B. VERWEIS() ... von: Peter
Geschrieben am: 04.11.2014 06:14:07

Hallo Werner
Vielen Dank für diesen Lösungsansatz.
Ich wollte ja nicht unbedingt einen Lösungsansatz mit einer Aufsummierung, konnte mir aber nicht vorstellen, wie ich das anderweitig machen kann.
Ich habe nun diese Formel auf meinen Spaltenbereich angepasst:
=VERWEIS(9;1/($A$4:$A$24<=F7)/($B$4:$B$24=G7)/($C$4:$C$24=H7);$D$4:$D$24)
(und Freude gehabt, dass es so immer noch funktioniert).

Vielleicht kannst du mir noch sagen, wo ich mich schlau machen kann, dass ich die Formel auch verstehe ...

Danke und Gruss, Peter


  

Betrifft: zu Deinen gewünschte Erklärungen ... von: neopa C (paneo)
Geschrieben am: 04.11.2014 08:18:34

Hallo Peter,

... für solche würde ich ein vielfaches der Zeit benötigen, als so eine Formel zu erstellen.
Ich hab aber gerade zu dieser spez. Formel des öfteren bereits meine Erklärungsversuche festgehalten.
Wahrscheinlich zuletzt in hier: http://www.online-excel.de/fom/fo_read.php?f=1&bzh=78232&h=78168 und im gleichen Thread etwas weiter unten.

Diese Erklärung kannst Du natürlich nicht 1:1 für die Formel hier im Thread anwenden aber prinzipiell schon.

Trotzdem will ich nochmals auf meine ergänzenden Hinweise und anschließenden Erklärungen von Gestern hinweisen.

Heute ergänzen würde ich dazu nun noch, dass ich an Deiner Stelle den Jahresbereich einschränken würde, auf den notfalls zurückgegriffen wird, wenn die Daten für ein Jahr nicht vorhanden sind. So greift z.B. nachfolgende Formel nur max. zwei Jahre zurück.

=VERWEIS(9;1/(A$1:A$99<=F7)/(A$1:A$99>F7-3)/(B$1:B$99=G7)/(C$1:C$99=H7);D:D)
Und sollte wirklich eine nachträgliche Sortierung der Daten notwendig werden, müsste die Formel natürlich dafür konstruiert werden.

Eine Möglichkeit wäre dann z.B.:
=WENNFEHLER(VERWEIS(9;1/(A$1:A$99=F7)/(B$1:B$99=G7)/(C$1:C$99=H7);D:D);VERWEIS(9;1/(A$1:A$99>F7-3) /(A$1:A$99
Aber auch für diese Formel gelten meine gestrigen Hinweise "... kann im ungünstigsten Fall zu vielleicht unerwünschten Ergebnissen führen"   Aber direkt falsch sind diese deswegen auch nicht.

Ich hoffe ich konnte etwas entwirren.

Gruß Werner
.. , - ...


  

Betrifft: AW: zu Deinen gewünschte Erklärungen ... von: Peter
Geschrieben am: 04.11.2014 08:53:30

Hallo Werner
Interessanter Link. Habe angefangen, mich da einzulesen. Da tut sich eine neue Welt auf. Ich muss da noch etwas Zeit investieren ...

Danke und Gruss, Peter


  

Betrifft: Noch ein Einspruch, ... von: Luc:-?
Geschrieben am: 03.11.2014 18:27:51

…Luschi; ;-]
Zitat: …diese Funktion nicht mit Strg+Shift+Enter abgeschlossen wird…
Das ist nur bei Direkt­Verwendung von Bereichs­Bezügen und einfachen Daten­feldern wie hier richtig. Wdn hingg Daten­felder als Ergebnis von als Argument über­gebenen fkts­behafteten komplexeren Aus­drücken (die ebenfalls nur Werte liefern) benutzt, ist das idR auch dieser Fkt über die Matrix­Klammer­setzung* mitzu­teilen, sonst wird oft nur ihr 1.Wert verwendet (Bsp WENN-Verwendung), obwohl SUMMENPRODUKT schon auf Matrix­Ver­arbei­tung ausgerichtet ist. Allerdings kann man zumindest den WENN-Fall meist umgehen.
* Das ist die HptAufgabe dieser Klammern → MatrixBildung für Daten­über- und -ausgabe (ausgabe­seitig auch für Bereiche)!
Gruß, Luc :-?


  

Betrifft: in dem von Dir gemeinten Fall ... von: neopa C (paneo)
Geschrieben am: 03.11.2014 18:52:47

Hallo Luc,

... kann aber mE immer {SUMME(WENN... )} nutzen. Jedenfalls ist mir bis jetzt noch keine Formel untergekommen, wo man wirklich {SUMMENPRODUKT()} braucht. Oder?

Gruß Werner
.. , - ...


  

Betrifft: Ja, das mache ich dann auch oft aus Einspar-... von: Luc:-?
Geschrieben am: 03.11.2014 18:57:04

…gründen, Werner,
aber es gibt wohl auch kompliziertere Fälle… Aber, wie das so ist, braucht man mal einen als Bsp, fällt einem partout keiner ein, obwohl ich schon welche hatte (glaube ich)… ;-)
Gruß, Luc :-?


  

Betrifft: mir ist bisher noch keine bekannt, ... von: neopa C (paneo)
Geschrieben am: 03.11.2014 19:01:32

Hallo Luc,

... also wenn Du eine hättest, die würde mich schon interessieren. Bis dahin hege ich zumindest Zweifel ;-) dass dies so wirklich notwendig sein könnte.

Gruß Werner
.. , - ...


  

Betrifft: AW: mir ist bisher noch keine bekannt, ... von: Luschi
Geschrieben am: 03.11.2014 19:27:55

Hallo Werner & Luc,

im neuesten Video von Video2Brain:
https://www.video2brain.com/de/videotraining/excel-matrixformeln
betont der Autor Frank Arendt-Theilen sehr oft, dass die 4 Matrix-Formeln Summenprodukt(), Verweis(), Index() und Aggregat() den Matrix-Formeln vorzuziehen sind, die als Abschluß die Tastenkombination Strg+Shift+Enter benötigen. Eine schlüssige Begründung liefert er aber auch nicht, aber sehr interessante Lösungsansätze für Problemstellungen, wo ich früher immer wie wild in den Vba-Editor reingehämmert habe.

Gruß von Luschi
aus klein-Paris


  

Betrifft: Naja, interessant wird's sicher sein, ... von: Luc:-?
Geschrieben am: 03.11.2014 20:05:09

…Luschi,
werde ich mal demnächst überprüfen. Allerdings hat der Autor auch schon in diesem Forum AWen gegeben, die ich nun nicht gerade kompetenter fand als das, was unsere Cracks hier drauf haben… ;-]
Leider gehen die Begriffe ja auch immer ziemlich durcheinander. MS spricht von Matrix­Fmln und -Konstanten immer nur dann, wenn entweder eine ganze/r Matrix/Vektor das Ergebnis einer Fml ist oder einer Fml ein Datenfeld als Argument übergeben wdn soll und das nur klappt, wenn auch die ZellEigenschaft .FormulaArray durch den speziellen Eingabe­Abschluss aktiviert wurde (in LO/OO ist das Pendant dazu das Häkchen-Setzen, noch andere Calc-Pgmm erzeugen eine spezielle FmlNotation), was bei MatrixKonstanten mitunter nur für die Ergebnis­Ausgabe erforderlich ist.
Daneben gibt's die FktsKategorie Matrix, in der etliche Fktt gelistet sind, die Bereiche u/o Daten­felder verarbeiten ohne deshalb immer die spezielle MxFml-Form zu benötigen (SUMMENPRODUKT fällt allerdings „nur“ in die Kategorie Mathematik & Trigonometrie!), obwohl - wie bspw bei ZEILE - auch ein Ergebnis-Einzel­wert oft Matrix­Form hat und deshalb mitunter Probleme bereiten kann.
Luc :-?


  

Betrifft: diese Aussage ist unbestritten ... von: neopa C (paneo)
Geschrieben am: 03.11.2014 20:10:03

Hallo Luschi,

... ich hab mir aus Zeitgründen das Video momentan noch nicht angesehen, aber zumindest ich kann der von Dir aus dieser entnommen Aussage nur zustimmen. (Fast) jede Lösung die sich auf Standardfunktionen zurückführen lässt, ist in der Geschwindigkeit den {}-Formeln überlegen. Die Lösungsmechanismen sind dort in den spez. Funktionen fix programmiert, während {}-Formeln erst intern in die notwendigen Auswertungsalgorithmen aufgelöst werden müssen. Das kostet eben Zeit. Deshalb werden ja auch oft Hilfszellenlösungen berechtigt als die Lösung angeboten.
Allerdings vertrete ich die Meinung, dass gute Hilfszellenlösungen auch meist nur dann angeboten werden können, wenn man das 1x1 der Matrixformeln nicht nur verstanden hat sondern auch anwenden kann.

Gruß Werner
.. , - ...


  

Betrifft: Eine Offenbarung ist der frei zugängliche ... von: Luc:-?
Geschrieben am: 04.11.2014 13:51:17

…Teil unter deinem Link nun nicht gerade, Luschi… ;->
Gruß, Luc :-?


  

Betrifft: AW: Matrixformel mit Funktionen Max und Summenprodukt? von: Peter
Geschrieben am: 04.11.2014 06:15:26

Hallo Luschi
Vielen Dank für deine Antwort und die Links, die ich mir gerne zu Gemüte führen werde.
Gruss, Peter


 

Beiträge aus den Excel-Beispielen zum Thema "Matrixformel mit Funktionen Max und Summenprodukt?"