Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
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

Sumproduct & Subtotal

Sumproduct & Subtotal
10.06.2014 16:29:46
ChrisW
Hallo Leute,
ich suche die richtige Schreibweise für die Sumproduct Berechnunugs Formel, mit ausgeblendeten Zeilen:
Die Formel bezieht sich auf eine Tabelle im Blatt "LIR", bei der je nach bedarf Filter gesetzt werden.
Die Formelk soll diese Filter berücksichtigen, d.h. ausgeblendete Zeilen dürfen nicht mit berechnet werden.
Die Formel über die ungefilterten Zeilen lautet:
=SUMPRODUCT((LIR!$Q$4:$Q$22=2014)*(LIR!$E$4:$E$22)*(LIR!$P$4:$P$22=10)* LIR!$O$4:$O$22=$L$1))
Wie lautet die Formel wenn ich Zeilen ausgebklendet habe für die nur sichtbaren Zeilen?
=Subtotal;9;SUMPRODUCT((LIR!$Q$4:$Q$22=2014)*(LIR!$E$4:$E$22)*(LIR!$P$4:$P$22=10) * LIR!$O$4:$O$22=$L$1)))
funktioniert nicht.
Vielen Dank
Chris

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mit INDIREKT() ...
10.06.2014 16:44:56
der
Hallo Chris,
... so: SUMPRODUCT((LIR!$Q$4:$Q$22=2014)*(LIR!$P$4:$P$22=10)* (LIR!$O$4:$O$22=$L$1)*SUBTOTAL(109,INDIRECT("LIR!E"&ROW(4:22))))
Gruß Werner
.. , - ...

AW: mit INDIREKT() ...
10.06.2014 16:59:21
ChrisW
Hallo Werner,
Ich danke Dir,
alles super,
nachdem ich das "," in ein ";" umgewandelt habe .
SUMPRODUCT((LIR!$Q$4:$Q$22=2014)*(LIR!$P$4:$P$22=10)* (LIR!$O$4:$O$22=$L$1)*SUBTOTAL(109;INDIRECT("LIR!E"&ROW(4:22))))
Nochmals Vielen Lieben DANK !!!!
Chris

AW: ohne INDIREKT(), mit Hilfsspalte in ...
10.06.2014 17:01:50
Daniel
... in der Quelldatei LIR
füge in der Tabelle LIR eine Hilfsspalte ein (Z.B. Z) mit folgender Formel im Bereich Z4:Z22:
=Teilergebnis(103;Q4)

die Formel ergibt dann 1 bei sichtbaren Zeilen und 0 bei ausgeblendeten Zeilen.
ins summenprodukt nimmst du das dann als zusätzliche Bediung auf:
=SUMPRODUCT((LIR!$Q$4:$Q$22=2014)*(LIR!$E$4:$E$22)*(LIR!$P$4:$P$22=10)* LIR!$O$4:$O$22=$L$1)  *LIR$Z$4:$Z$22) 

von INDIREKT würde ich bei Formel mit hohem Rechenaufwand wie Summenprodukt absehen.
Wenn die Formel Indirekt enthält, wird sie jedesmal neu berechnet, wenn du irgendow in Excel eine Zelle änderst, ohne Indirekt nur dann, wenn im von der Formel verwendeten Zellbereich eine Änderung stattfindet.
kleiner Tipp noch: seit Excel 2007 gibts SummeWenns für Summen mit mehren Bedingungen, was nicht nur übersichtlicher, sodern auch schneller ist als Summenprodukt.
Summenprodukt wird dann nur noch bennötigt, wenn komplexe Bedinungen vorhanden sind, die sich über SummeWenns nicht darstellen lassen, oder die Datei auch von Excel2003 geöffnet werden kann.
=SumIfs(LIR!$E$4:$E$22;LIR!$Q$4:$Q$22;2014;LIR!$P$4:$P$22;10;LIR!$O$4:$O$22;$L$1;LIR!$Z$4:$Z$22;1) 

Gruß Daniel

Anzeige
im vorliegenden Fall, wo ...
10.06.2014 17:17:33
der
Hallo Daniel,
... ersten nur einmal INDIREKT() und zweitens nur wenige Zeilen ausgewertet werden, kann man bedenkenlos auch die aufgezeigte SUMMENPRODUKT() -Formel nutzen und auf die Hilfsspalte wie SUMMEWENNS() verzichten.
Gruß Werner
.. , - ...

AW: im vorliegenden Fall, wo ...
10.06.2014 17:28:01
Daniel
ja, aber ich denke, man sollte lieber gleich die Methoden lernen, die dann auch für grösser Tabellen praktikabel sind.
Außerdem hat Indirekt einen weitern Nachteil:
Wenn du die Tabelle nachbearbeitest und Zeilen oder Spalten einfügst oder löschst, oder das Tabellenblatt umbenennst, dann passt Excel automatisch die Zellbezüge in betroffenen Formeln an, so dass du dich hier nicht weiter darum kümmern musst.
Die Zellbezüge in der Indirekt-Funktion sind jedoch Texte und damit von solchen automatischen Aktualisierungen ausgeschlossen und müssen von Hand aufwendig nachkorrigiert werden.
Auch ein grund, warum ich Indirekt weitestgehend vermeide und nur dann einsetze, wenn der Blattname variabel sein muss.
Gruß Daniel

Anzeige
'...von Hand aufwendig nachkorrigiert' doch ...
10.06.2014 18:02:11
Hand
…nur, wenn man sie unflexibel als Text angibt, Daniel;
dass das auch flexibel (Stichwort: ADRESSE) geht, weiß Werner auch… ;-)
(Im Übrigen habe ich natürlich auch dafür eine UDF! ;-])
Gruß Luc :-?

AW: '...von Hand aufwendig nachkorrigiert' doch ...
10.06.2014 18:19:56
Hand
die frage ist, was Chris weiß.
und so wie es geschrieben ist, macht das Indirekt keine Anpassung, wenn du auf dem Blatt LIR eine Zeilen eifügst und sich der Bereich von Zeile 4:22 nach 5:23 verschiebt.
wie schreibst du die Adressfunktion, damit sich die Formel automatsich anpasst, wenn du das Blatt von LIR in irgendwas anderes umbenennst?
(ist jetzt ne ernst gemeinte Frage an dich)
dass es für alles eine UDF gibt, steht ausser frage, aber hier ist ja keine Makro-Lösung gefragt.
Gruß Daniel

Anzeige
Na, dann eben einen definierten Namen ...
11.06.2014 01:40:52
Luc:-?
…benutzen, Daniel,
zB so:
relBlatt =T(NOW())&MID(GET.CELL(32,LIR!$A$1),SEARCH("]",GET.CELL(32,LIR!$A$1))+1,99)
Die ZellFml sähe dann so aus:
=SUMPRODUCT((LIR!$Q$4:$Q$22=2014)*(LIR!$P$4:$P$22=10)*(LIR!$O$4:$O$22=$L$1)*SUBTOTAL(109,
INDIRECT(relBlatt&"!"&ADDRESS(ROW(LIR!4:22),COLUMN(LIR!E:E)))))
Anmerkung für Chris: Das ist die Original-US-Notation → ggf anpassen!
Gruß Luc :-?
Besser informiert mit …

Anzeige
Die erwähnte UDF dient übrigens nur ...
11.06.2014 01:55:26
Luc:-?
…der einfacheren AdressTextErzeugung aus einem gegebenen ZellBezug ohne das umständliche ADRESSE, Daniel!
Und die Lösung mit definiertem Namen erfordert wie eine in gleicher Mappe stationierte UDF die Speicherung als .xlsm bzw .xlsb. Befindet sich die UDF allerdings in einem AddIn, muss nur dieses als .xlab (bzw .xlam) gespeichert wdn, die anwendende Datei kann auch eine .xlsx sein, was doch wohl auch ein deutlicher Vorteil des UDF-Einsatzes ist…!
Luc :-?

AW: Die erwähnte UDF dient übrigens nur ...
11.06.2014 07:40:51
Daniel
Warum einf, wn's auch kompl geht?

;c) Nette Diskussion - Vielen Dank
11.06.2014 10:14:16
ChrisW
Hallo Leute,
Vielen Dank für die nette Diskussion über die verschiedenen Methoden.
Meine Formel wird bei jedem Update automatisch angepasst an den Tabellenbereich, so dass die letzte Zeile immer variabel bleibt.
Meine Aufgabenstellung war, eine Möglichkeit zu finden, in einer Tabellen-Auswertung bestimmte Zeilen nicht zu berücksichtigen, und das fand ich geht am flexibelsten für den User, wenn er mittels der Filterfunktion das ausblendet, was ihn im Auswertungsmoment nicht interessiert.
Also habe ich nach der Formel gesucht, die bei jeder Filteränderung eine neue Ausgabe möglich macht, ohne die Tabelle neu zu erstellen oder auszulesen.
Und da ist die indirekt Methode eine feine Lösung, die ich zwar in verschiedenen Foren angesehen habe, aber ich war nicht in der Lage sie so in meine Formel einzupassen, das es funktioniert hat.
Ich wollte diese Subtotal(109, indirect( .... in jeden Summenprodukt-Therm einbauen, was ich jetzt natürlich als völligen Blödsinn erkenne und habe deshalb nicht die funktionierende Formel hinbekommen.
Nochmals an alle Beteiligten
Vielen Dank für die lehrreiche Diskussion, bis zum nächsten mal, wenn ich mal wieder auf dem Schlauch stehe ;c)
Chris

Anzeige
Bitte sehr, gern geschehen! owT
11.06.2014 15:02:36
Luc:-?
:-?

Aha, typisch! Allerdings hattest du ja ...
11.06.2014 15:01:50
Luc:-?
…angeblich eine ernsthafte Frage gestellt, Daniel,
die ich hiermit auch beantwortet hatte. Ob das im konkreten Anwendungsfall auch sinnvoll ist, steht auf einem anderen Blatt. Hier ging's nur um deine Nachfrage! Allerdings geht's auch noch anders, wenn man die XLM-Fkt vermeiden oder so etwas in einer mehrzelligen MxFml verwenden will (Letzteres macht ZELLE.ZUORDNEN [Get.Cell] bekanntlich nicht mit. Dann könnte in der benannten Fml (bzw direkt in der ZellFml → ohne den T(NOW())-Vorspann) anstelle von GET.CELL(…) genauso die xlStanddFkt ZELLE zum Einsatz kommen: CELL("filename",LIR!$A$1)
Luc :-?

Anzeige
AW: Aha, typisch! Allerdings hattest du ja ...
11.06.2014 15:21:38
Daniel
war auch ne ernsthafte frage.
hätte ja sein können, dass die Lösung einfacher ist.
Solange es aufwendiger ist als eine Hilfsspalte und zusätzlich nur über den Preis der Volatilität machbar ist, halte ich die Hilfsspaltenlösung für besser, weil einfacher, schneller, für den Anfänger verständlicher.
Gruß Daniel

Das kannst du halten wie du willst, aber in ...
11.06.2014 19:46:00
Luc:-?
…der Level-Anzeige sehe ich die Selbsteinschätzung Excel gut, Daniel! ;-]
Luc :-?

AW: trotzem brauche ich meine Zeit ja nicht
11.06.2014 20:05:39
Daniel
mit komplizierten Lösungen verschwenden, oder?
außerdem schreibe ich meine Lösungen hier in der Regel nicht für mich, sondern für andere, die u.U. nicht den Level "gut" haben, die sollten das auch verstehen.
Gruß Daniel

Anzeige
Level zeigt normalerweise nicht dein xlNiveau, ...
12.06.2014 01:36:30
Luc:-?
…sondern das des Fragestellers an, Daniel,
(oder hast du dran gedreht?) und das hatte ich auch gemeint! Und wenn du „komplizierte“ Lösungen für ZeitVerschwendung hältst, warum hast du dann den Thread überhaupt erst soweit kommen lassen? Ist doch aus deiner Sicht alles nur Zeitverschwendung! Glücklicherweise sieht das der Fragesteller wohl etwas anders… ;->
Luc :-?

Achso, noch vergessen! Einfacher wäre ...
11.06.2014 19:57:55
Luc:-?
…die AdressTextErzeugung wohl so:
Tabelle3!A1Splint(RAddress(Tabelle3!A1;;;;1;1);"]";2)
Wie gesagt, mit meinem AddIn im HG auch als .xlsx speicherbar!
Luc :-?

Anzeige
AW: Achso, noch vergessen! Einfacher wäre ...
11.06.2014 20:03:01
Daniel
ich nehme sowieso immer nur xlsb, weils einfach praktischer ist, wenn in den File-Dialogen immer alle Excelfiles angezeigt werden und nicht nur ein Teil.
Wenn du jetzt noch so freundlich wärest, uns zu erkären was HG ist, damit wir auch verstehen was du meinst?
Gruß Daniel

Damit DU d.verstehst, HG=Bg (Hinter-/Backgrd)! owT
12.06.2014 01:40:11
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige