PDA

Vollständige Version anzeigen : SummeWenn mit Bedingungen aus einer Liste


-snoopy-
28.08.2017, 10:52
Moin in die Runde,

bräuchte mal bitte eure Hilfe :)

Ich versuche mich an einer SummeWenns Auswertung, wo ich die Kriterien teilweise aus einer Liste entnehmen möchte.

Es soll in Tabelle1 die Summe pro IDNr. aus Tabelle3 ausgegeben werden, mit den "Kriterien" aus der Tabelle2, Bereich K2-K3 (dieser kann sich auch in der Länge verändern, wenn weitere "Kriterien" dazu kommen) und der entsprechenden IDNr.

Im Anhang findet ihr ein Beispiel, wie die Tabellen aufgebaut sind und wie das Ergebnis aussehen sollte ;)

Würde mich über eine Hilfestellung (per Formel oder VBA) freuen.

Vielen Dank vorab, Gruß Snoopy

Superingo2
28.08.2017, 11:42
Hallo Snoopy,

Lösungsformel für K2:
=SUMMENPRODUKT(((Tabelle3!$H$2:$H$10=Tabelle2!$K$2)+(Tabelle3!$H$2:$H$10=Tabelle 2!$K$3))*(Tabelle3!$A$2:$A$10=D2)*Tabelle3!$E$2:$E$10)

Sollten die Fälle aus Tabelle2! sich häufen, dann geht es auch so:
{=SUMMENPRODUKT((Tabelle3!$H$2:$H$10=MTRANS(Tabelle2!$K$2:$K$3))*(Tabelle3!$A$2: $A$10=D2)*Tabelle3!$E$2:$E$10)}
Aber Achtung Matrixformel! Geschweifte Klammern nicht mit eintippen oder mitkopieren, sondern durch STRG+SHIFT+ENTER erzeugen. Das gilt bei jedem reinklicken in die Zellformel!

LG Ingo

Jonas0806
28.08.2017, 11:44
Hallo Snoopy,

mein Vorschlag, nochmal 19 Zeichen kürzer, ohne Matrixabschluß

=SUMME(INDEX((D2=Tabelle3!$A$2:$A$10)*(ZÄHLENWENN(Tabelle2!$K$2:$K$3;Tabelle3!$H $2:$H$10)>0)*Tabelle3!$E$2:$E$10;))

Superingo2
28.08.2017, 11:53
Hallo Jonas,

geniale Formeltechnik, die Du da so in die Runde wirfst!
Gefällt mir!

Respektvolle kollegiale Grüße
Ingo

Jonas0806
28.08.2017, 11:55
Hi Ingo,

vielen Dank, für die netten Worte :)

-snoopy-
28.08.2017, 12:24
Moin moin!

erstmal Danke an EUCH für die schnelle Hilfestellung :top:

Die Lösung von Jonas ist schon echt der Hammer ... mein Favorit :)

Und da habe ich auch gleich noch eine Frage dazu ;)

Die Zeilen der Tabellen können von der Anzahl her sehr schwanken.
Mal sind es nur 40 Zeilen, dann aber auch gerne mal mehr als 2.000 Zeilen.

Kann man in der Formel den Bereich aus Tabelle3
Tabelle3!$A$2:$A ....)
dynamisch halten, oder muss ich hier immer "großzügig" den Bereich
Tabelle3!$A$2:$A$4000) auf z.B. 4.000 festlegen?
Tabelle3!A:A) hat leider nicht funktioniert :(

Vielen Dank, Gruß Snoopy

Jonas0806
28.08.2017, 13:16
Hallo Snoopy,

das bläht die Formel dann etwas auf

=SUMME(INDEX((D2=Tabelle3!$A$2:INDEX(Tabelle3!A:A;ANZAHL2(Tabelle3!A:A)))*(ZÄHLE NWENN(Tabelle2!$K$2:INDEX(Tabelle2!K:K;ANZAHL2(Tabelle2!K:K));Tabelle3!$H$2:INDE X(Tabelle3!H:H;ANZAHL2(Tabelle3!H:H)))>0)*Tabelle3!$E$2:INDEX(Tabelle3!E:E;ANZAHL2(Tabelle3!E:E));))

-snoopy-
28.08.2017, 14:01
Moin Jonas,

...bläht die Formel dann etwas auf ... ist wohl etwas untertrieben :D

Vielen, vielen Dank dafür :hands:

Obwohl die Formel ja jetzt sooooooo lang ist, ist die Performance nicht eingebrochen :)

Mein Tag ist gerettet :cool:

Wünsche allen eine angenehme und ruhige Woche.
Euer Snoopy :sun:

Frank Furter
28.08.2017, 16:00
Hallo Snoopy,

mein Vorschlag, nochmal 19 Zeichen kürzer, ohne Matrixabschluß

=SUMME(INDEX((D2=Tabelle3!$A$2:$A$10)*(ZÄHLENWENN(Tabelle2!$K$2:$K$3;Tabelle3!$H $2:$H$10)>0)*Tabelle3!$E$2:$E$10;))

Hallo, das hier ist zwar durch aber auch hier noch eine Variante..:

=SUMME(SUMMEWENNS(Tabelle3!$E$2:$E$10;Tabelle3!$H$2:$H$10;Tabelle2!$K$2:$K$3;Tab elle3!$A$2:$A$10;D2))

mit CSE abschleißen...

-snoopy-
29.08.2017, 07:36
Moin Frank Furter,

... führen nach Rom ;) ... und ich hatte noch nicht mal einen gefunden :(

Vielen Dank für eine weitere Lösungsvariante :)

:sun: Grüße