Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Summewenns Funktion optimieren

Forumthread: Summewenns Funktion optimieren

Summewenns Funktion optimieren
18.06.2013 12:11:34
Dominic
Hi,
ich habe eine sehr umfangreiche Excel Tabelle mit unzähligen Summewenns Funktionen aufgebaut. Diese funktioniert soweit einwandfrei, allerdings würde ich diese gerne weiter optimieren bzw. von der Performance her deutlich verbessern.
Mitunter braucht meine Tabelle bei einer Datenaktualisierung gute 2-3 Minuten!
Mit Datenbank Funktionen die ich davor verwendet habe war es sogar noch langsamer.
Hat einer ne Idee wie ich die folgende Formel "performanceschonender" umgestalten kann?
=WENN(ODER($B56="";$B$5=1);"";WENN($B$5=2;SUMMEWENNS(Datenbasis!$M:$M;Datenbasis!$O:$O; BEREICH.VERSCHIEBEN(Datensammlungen!$Y3;ZEILE()-ZEILE($A56););Datenbasis!$H:$H;$B$10; Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8);WENN($B$5=3;SUMMEWENNS(Datenbasis!$L:$L; Datenbasis!$O:$O;BEREICH.VERSCHIEBEN(Datensammlungen!$Y3;ZEILE()-ZEILE($A56););Datenbasis!$H:$H; $B$10;Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8);WENN($B$5=4;SUMMEWENNS(Datenbasis!$R:$R; Datenbasis!$O:$O;BEREICH.VERSCHIEBEN(Datensammlungen!$Y3;ZEILE()-ZEILE(A56););Datenbasis!$H:$H;$B$10; Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8);WENN($B$5=5;SUMMEWENNS(Datenbasis!$S:$S; Datenbasis!$O:$O;BEREICH.VERSCHIEBEN(Datensammlungen!$Y3;ZEILE()-ZEILE($A56););Datenbasis!$H:$H; $B$10;Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8))))))

Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summewenns Funktion optimieren
18.06.2013 12:27:46
Klaus
Hi,
du solltest
BEREICH.VERSCHIEBEN
tauschen gegen das deutlich schnellere
INDEX
Die Formel wird dadurch höchstwarscheinlich noch länger, aber performanter.
In die Detailanalyse deines Formelmonsters steige ich jetzt aber nicht ein ;-) etwas Lesestoff für dich:
Hier
http://www.online-excel.de/excel/singsel.php?f=180
erklärt Peter Haserodt, wie man ein BEREICH.VERSCHIEBEN durch Zuhilfenahme von INDEX():INDEX() ersetzen kann. Warum das hilft, steht unter anderem hier
http://www.online-excel.de/excel/singsel.php?f=171
beschrieben.
Grüße,
Klaus M.vdT.

Anzeige
AW: Summewenns Funktion optimieren
18.06.2013 13:11:57
Dominic
Hi Klaus,
ach so, "Bereich.Verschieben" bremst meine Tabelle so aus. Hmm, könntest du mir ggf. helfen mit der Anpassung meiner Formel?
Die folgende Formel steht in Zelle C56:
=WENN(ODER($B56="";$B$5=1);"";WENN($B$5=2;SUMMEWENNS(Datenbasis!$M:$M;Datenbasis!$O:$O;$Y3; Datenbasis!$H:$H;$B$10;Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8);WENN($B$5=3; SUMMEWENNS(Datenbasis!$L:$L;Datenbasis!$O:$O;Datensammlungen!$Y3;Datenbasis!$H:$H;$B$10; Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8);WENN($B$5=4;SUMMEWENNS(Datenbasis!$R:$R; Datenbasis!$O:$O;Datensammlungen!$Y3;Datenbasis!$H:$H;$B$10;Datenbasis!$G:$G;C$26;Datenbasis!$F:$F; $E$8);WENN($B$5=5;SUMMEWENNS(Datenbasis!$S:$S;Datenbasis!$O:$O;Datensammlungen!$Y3;Datenbasis!$H:$H; $B$10;Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8))))))
In C57, C58, C59, c60 und C61 stehen andere Formeln / Werte die Excel mir errechnen soll.
Nun möchte ich, die Zellen C56 bis C61 markieren und bis zum Tabellenende Zeile 2029 ziehen,
das funktioniert bei mir mit allen anderen Formeln die z. B. in C57, C58, C59, c60 und C61 stehen einwandfrei nur in Zelle C62 steht auf einmal die Formel:
=WENN(ODER($B62="";$B$5=1);"";WENN($B$5=2;SUMMEWENNS(Datenbasis!$M:$M;Datenbasis!$O:$O;$Y9; Datenbasis!$H:$H;$B$10;Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8);WENN($B$5=3; SUMMEWENNS(Datenbasis!$L:$L;Datenbasis!$O:$O;Datensammlungen!$Y9;Datenbasis!$H:$H;$B$10; Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8);WENN($B$5=4;SUMMEWENNS(Datenbasis!$R:$R; Datenbasis!$O:$O;Datensammlungen!$Y9;Datenbasis!$H:$H;$B$10;Datenbasis!$G:$G;C$26;Datenbasis!$F:$F; $E$8);WENN($B$5=5;SUMMEWENNS(Datenbasis!$S:$S;Datenbasis!$O:$O;Datensammlungen!$Y9;Datenbasis!$H:$H; $B$10;Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8))))))
Der Vergleich mit der Formel davor zeigt, dass hier statt Y4, leider Y9 aus dem Tabellenblatt Datensammlungen "benutzt" wird. Wie kann ich das entsprechend abändern mit deiner Index Funktion, dass er immer nur in 1er Schritten weiterzählt?
Vielen Dank im Voraus!

Anzeige
AW: Summewenns Funktion optimieren
18.06.2013 13:29:49
Klaus
Hi Dominic,
was ist denn mit der Verkürzung, die Rudi vorgeschlagen hat? Vielleicht löst die das Problem schon.
Falls nicht, währ ich über eine Musterdatei sehr dankbar. Ich kann die von dir angezeigte Formel auch nicht einfach kopieren, da mein Excel auf englisch läuft.
Grüße,
Klaus M.vdT.

Anzeige
AW: Summewenns Funktion optimieren
18.06.2013 14:12:44
Dominic
Hi Klaus,
okay vielen Dank dennoch, die Formel von Rudi funktioniert. Ich durchschau diese zwar momentan noch nicht, aber das wird hoffentlich noch kommen ;)
Vg

AW: Summewenns Funktion optimieren
18.06.2013 12:33:42
Rudi
Hallo,
die Bremse ist eher Bereich.Verschieben.
Benutze INDEX().
Außerdem geht's imho viel kürzer.
=WENN(ODER($B56="";$B$5=1);"";SUMMEWENNS(INDEX(Datenbasis!$A:$M;;WAHL($B$5;13;12;18;19)); Datenbasis!$O:$O; INDEX(Datensammlungen!$Y:$Y;ZEILE()-ZEILE(A53));Datenbasis!$H:$H;$B$10; Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8))
Gruß
Rudi

Anzeige
Korrektur
18.06.2013 13:37:15
Rudi
Hallo,
C56: =WENN(ODER($B56="";$B$5=1);"";SUMMEWENNS(INDEX(Datenbasis!$A:$S;;WAHL($B$5;;13;12;18;19)); Datenbasis!$O:$O; INDEX(Datensammlungen!$Y:$Y;ZEILE(A6)/6+2);Datenbasis!$H:$H;$B$10; Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8))
Gruß
Rudi

AW: Korrektur
18.06.2013 14:11:34
Dominic
Hi Rudi,
wow, es funktioniert. Vielen Dank. Ich kann die Formel allerdings noch nicht ganz nachvollziehen - oder es ist grad einfach zu warm ;-) )
Könntest du mir diese vielleicht noch ein wenig erklären?
Mir ist gerade auch noch ein Fehler in einer meiner anderen Zellen aufgefallen die ebenfalls die "Bereich.Verschieben" Funktion beinhaltet. Könntest du mir hierbei ebenfalls einen alternativen Vorschlag auf Basis der Index Funktion durchgeben?
Zelle C57 beinhaltet diese Formel:
=WENN(UND($B56"";$B$10=2011);SUMMEWENNS(Datensammlungen!$F$2:$F$1614;Datensammlungen!$A$2:$A$1614; BEREICH.VERSCHIEBEN(Datensammlungen!$Y3;ZEILE()-ZEILE($A57););Datensammlungen!$E$2:$E$1614;$E$8); WENN(UND($B56"";$B$10=2012);SUMMEWENNS(Datensammlungen!$G$2:$G$1614;Datensammlungen!$A$2:$A$1614; BEREICH.VERSCHIEBEN(Datensammlungen!$Y3;ZEILE()-ZEILE($A57););Datensammlungen!$E$2:$E$1614;$E$8); WENN(UND($B56"";$B$10=2013);SUMMEWENNS(Datensammlungen!$H$2:$H$1614;Datensammlungen!$A$2:$A$1614; BEREICH.VERSCHIEBEN(Datensammlungen!$Y3;ZEILE()-ZEILE($A57););Datensammlungen!$E$2:$E$1614;$E$8);"")) )*SUMMEWENNS(Datensammlungen!$W$3:$W$50;Datensammlungen!$V$3:$V$50;C$26;Datensammlungen!$U$3:$U$50; $B$10)
Ohne Bereich.Verschieben sollte diese so aussehen (übersichtlicher):
=WENN(UND($B56"";$B$10=2011);SUMMEWENNS(Datensammlungen!$F$2:$F$1614;Datensammlungen!$A$2:$A$1614; Datensammlungen!$Y3;Datensammlungen!$E$2:$E$1614;$E$8);WENN(UND($B56"";$B$10=2012); SUMMEWENNS(Datensammlungen!$G$2:$G$1614;Datensammlungen!$A$2:$A$1614;Datensammlungen!$Y3; Datensammlungen!$E$2:$E$1614;$E$8);WENN(UND($B56"";$B$10=2013); SUMMEWENNS(Datensammlungen!$H$2:$H$1614;Datensammlungen!$A$2:$A$1614;Datensammlungen!$Y3; Datensammlungen!$E$2:$E$1614;$E$8);"")))*SUMMEWENNS(Datensammlungen!$W$3:$W$50; Datensammlungen!$V$3:$V$50;C$26;Datensammlungen!$U$3:$U$50;$B$10)
Auch hier gilt das gleiche wie für die Formel in Zelle C56, heißt wenn ich die Zellen C56 bis C61 markiere und bis Zeile C2029 kopiere soll in
Zelle C63 folgende Formel auftauchen:
=WENN(UND($B56"";$B$10=2011);SUMMEWENNS(Datensammlungen!$F$2:$F$1614;Datensammlungen!$A$2:$A$1614; Datensammlungen!$Y4;Datensammlungen!$E$2:$E$1614;$E$8);WENN(UND($B56"";$B$10=2012); SUMMEWENNS(Datensammlungen!$G$2:$G$1614;Datensammlungen!$A$2:$A$1614;Datensammlungen!$Y4; Datensammlungen!$E$2:$E$1614;$E$8);WENN(UND($B56"";$B$10=2013); SUMMEWENNS(Datensammlungen!$H$2:$H$1614;Datensammlungen!$A$2:$A$1614;Datensammlungen!$Y4; Datensammlungen!$E$2:$E$1614;$E$8);"")))*SUMMEWENNS(Datensammlungen!$W$3:$W$50; Datensammlungen!$V$3:$V$50;C$26;Datensammlungen!$U$3:$U$50;$B$10)
Also beim Y3, wieder eine "Steigerung" auf Y4.
Wie bekomm ich das mit der Index Funktion hin? Da ich deine oben genannte Formel noch nicht nachvollziehen kann, weiß ich aktuell nicht wie ich diese Formel umändere.
Vielen Dank im Voraus!

Anzeige
AW: Korrektur
18.06.2013 14:32:56
Rudi
Hallo,
Ich kann die Formel allerdings noch nicht ganz nachvollziehen - oder es ist grad einfach zu warm ;-) )
hab ich vorhin was von nem Profi gelesen?
Das ist doch einfach. Und warm ist es hier auch.
Du kannst doch nicht einfach Bereich.verschieben durch nichts ersetzen.
Dafür und auch für die korrekte Ermittlung von Y ist INDEX(Datensammlungen!$Y:$Y;ZEILE(A6)/6+2) zuständig.
C57: =WENN($B56"";SUMMEWENNS(INDEX(Datensammlungen!$F$2:$H$1614;;$B$5-2010);Datensammlungen!$A$2:$A$1614; INDEX(Datensammlungen!$Y:$Y;ZEILE(A6)/6+2);Datensammlungen!$E$2:$E$1614;$E$8)*SUMMEWENNS(Datensammlungen!$W$3:$W$50; Datensammlungen!$V$3:$V$50;C$26;Datensammlungen!$U$3:$U$50;$B$10);"")
Gruß
Rudi

Anzeige
AW: Korrektur
18.06.2013 14:37:57
Dominic
Hi Rudi,
vielen Dank für deine Unterstützung.
Ich habe "Bereich.Verschieben" nicht durch nichts ersetzt, ich wollte dir nur die Formel bzw. die Bezüge einfacher darstellen. Dachte es wäre für dich einfacher "Y3" bzw. "Y4" zu sehen als "BEREICH.VERSCHIEBEN(Datensammlungen!$Y3;ZEILE()-ZEILE($A57);)"
Ich werde deine Formel gleich ausprobieren. :)
Vg

Anzeige
AW: Korrektur
18.06.2013 15:10:45
Dominic
Hi Rudi,
irgendwo ist da noch der Wurm drin im folgenden Bereich:
"$B$5-2010)"
Kannst du mir hier bitte nochmal helfen?

AW: Korrektur
18.06.2013 15:14:46
Rudi
Hallo,
muss auch $B$10 heißen.
Gruß
Rudi

AW: Korrektur
18.06.2013 15:55:13
Dominic
Ach Mensch, jetzt versteh ich deine Formel. Mir war nicht ganz klar, dass die Zahlen bei WAHL für die Spalten M, L, usw. stehen.
Das ist mir nun klar. Echt genial diese Methode.
Aber eines versteh ich nach wie vor nicht ganz, was hat es mit der "Zeile(A6)/6+2" auf sich?
Ich versteh da nicht den Zusammenhang mit der Spalte Y bzw. wie Excel den Bezug korrekt setzt / bzw. errechnet, dass in Zelle C56: Y3 steht, in Zelle C62: Y4 und in Zelle C68: Y5
Wo wird hier angegeben, dass Excel in der Spalte Y im Tabellenblatt "Datensammlungen" immer nur um den Wert 1 "steigen" soll?

Anzeige
AW: Korrektur
18.06.2013 16:21:03
Rudi
Hallo,
in 56: Zeile(A6)/6+2 = 6/6+2 = 3 Index(Y:Y;3)= Y3
in 62: Zeile(A12)/6+2 = 12/6+2 = 4 Index(Y:Y;4)= Y4
in 68: Zeile(A18)/6+2 = 18/6+2 = 5 Index(Y:Y;5)= Y5
etc.
Jetzt klar?
Gruß
Rudi
;
Anzeige
Anzeige

Infobox / Tutorial

Summewenns Funktion optimieren für bessere Excel Performance


Schritt-für-Schritt-Anleitung

  1. Identifizieren der problematischen Formel: Überprüfe deine aktuelle Formel, die viele SUMMEWENNS-Funktionen enthält. Diese kann die Performance Deiner Excel-Tabelle stark beeinträchtigen.

  2. Ersetzen von BEREICH.VERSCHIEBEN durch INDEX: Tausche BEREICH.VERSCHIEBEN durch die INDEX-Funktion aus. Zum Beispiel:

    =WENN(ODER($B56="";$B$5=1);"";SUMMEWENNS(INDEX(Datenbasis!$A:$M;;WAHL($B$5;13;12;18;19)); Datenbasis!$O:$O; INDEX(Datensammlungen!$Y:$Y;ZEILE()-ZEILE(A53));Datenbasis!$H:$H;$B$10; Datenbasis!$G:$G;C$26;Datenbasis!$F:$F;$E$8))
  3. Formel anpassen: Achte darauf, dass die Indizes korrekt sind, um die gewünschten Werte aus den richtigen Zeilen zu ziehen.

  4. Zellen kopieren und anpassen: Markiere die Zellen mit der neuen Formel und ziehe sie bis zum gewünschten Endpunkt. Achte darauf, dass die Referenzen in den Formeln korrekt angepasst werden.


Häufige Fehler und Lösungen

  • Fehler: Falsche Zellbezüge: Manchmal werden beim Ziehen der Formeln falsche Zellbezüge übernommen. Verwende relative und absolute Bezüge sorgfältig.

  • Lösung: INDEX für korrekte Referenzen: Stelle sicher, dass du INDEX in der richtigen Weise anwendest, um korrekte Referenzen zu erhalten.

  • Fehler: Lange Ladezeiten: Wenn deine Tabelle beim Aktualisieren lange braucht, kann das an der Anzahl der SUMMEWENNS-Funktionen liegen. Reduziere die Anzahl der Berechnungen, indem du sinnvollere Datenstrukturen verwendest.


Alternative Methoden

  • Verwendung von Power Query: Nutze Power Query für die Datenaufbereitung, um Berechnungen außerhalb der Tabelle durchzuführen und so die Performance zu verbessern.

  • Pivot-Tabellen: Wenn du häufig aggregierte Daten benötigst, kann eine Pivot-Tabelle anstelle von SUMMEWENNS die Performance erheblich verbessern.


Praktische Beispiele

  • Beispiel einer optimierten Formel:

    Angenommen, du hast folgende ursprüngliche Formel:

    =SUMMEWENNS(Datenbasis!$M:$M;Datenbasis!$O:$O;BEREICH.VERSCHIEBEN(Datensammlungen!$Y3;ZEILE()-ZEILE($A56);))

    Diese kann optimiert werden zu:

    =SUMMEWENNS(INDEX(Datenbasis!$A:$M;;12); Datenbasis!$O:$O; INDEX(Datensammlungen!$Y:$Y;ZEILE()-ZEILE(A56));Datenbasis!$H:$H;$B$10)
  • Anwendung auf Fuhrparkverwaltung: Wenn du die Excel-Funktionalität in einer Fuhrparkverwaltung anwendest, achte darauf, dass du den Überblick über die Fahrzeugdaten behältst und die Berechnungen effizient gestaltest.


Tipps für Profis

  • Reduziere die Datenmenge: Arbeite mit einer kleineren Datenbasis oder filtere die Daten vor der Berechnung. Das verringert die Anzahl der Berechnungen, die Excel durchführen muss.

  • Verwende Named Ranges: Dies kann die Lesbarkeit deiner Formeln erhöhen und gleichzeitig die Performance verbessern, indem du die Anzahl der Zellen reduzierst, die Excel überwachen muss.

  • Regelmäßige Berechnungseinstellungen anpassen: Stelle in den Excel-Optionen die Berechnung auf „Manuell“, wenn du mit großen Datenmengen arbeitest. So kannst du die Berechnung auf einen späteren Zeitpunkt verschieben.


FAQ: Häufige Fragen

1. Was ist die SUMMEWENNS-Funktion? Die SUMMEWENNS-Funktion summiert Werte, die mehreren Kriterien entsprechen. Sie wird häufig genutzt, um spezifische Daten zu aggregieren.

2. Wie kann ich die Performance meiner Excel-Tabelle verbessern? Durch den Austausch ineffizienter Funktionen wie BEREICH.VERSCHIEBEN gegen INDEX, die Optimierung von Formeln und die Reduzierung der Datenmenge kann die Performance erheblich gesteigert werden.

3. Ist die SUMMEWENNS-Funktion in der englischen Version von Excel anders? Ja, in der englischen Version heißt die Funktion SUMIFS. Die Funktionsweise bleibt jedoch gleich.

4. Welche Rolle spielen Named Ranges in Excel? Named Ranges machen Formeln übersichtlicher und können helfen, Berechnungen zu optimieren, da sie die Anzahl der Zellreferenzen reduzieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige