Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zu viele Formeln - Tabelle langsam - was tun?

Zu viele Formeln - Tabelle langsam - was tun?
20.07.2008 16:55:00
M
Hallo zusammen,
ich habe mir eine recht umfangreiche Exceltabelle gestrickt. Hier ein paar Koordinaten dazu:
- 15 Tabellenblätte (vllt. kommt noch das eine oder andere Tabellenblatt dazu)
- in ca. 8 Tabellenblättern steht verweis/vergleich/ISTFEHLER Funktionen die mit Wenn-Funktionen verknüpft werden. über 310 Zeilen und 120 spalten (also 36.000 dieser Funktionen je Tabellenblatt)
- Es gibt ein Tabellenblatt - ich nenne es "Start", in dem über ein Makro Zeilen erzeugt werden, um Eingaben machen zu können, mit denen in den anderen Tabellenblättern die Berechnungen durchgeführt werden. Darüber hinaus werden über das "Start"-Tabellenblatt entsprechen der Eingaben auch Tabellenblätter erzeugt, in den die Ergebnisse aus der den Tabellenblättern mit den Wenn-Funktionen rein geschrieben werden und somit Auswertungen möglich sind.
Die ganze Exceltabelle ist jetzt aber höchst unperformat geworden, da das vermutlich alles zu viel für den Arbeitsspeicher ist. Wenn ich meine Eingaben in dem "Start"-Tabellenblatt mache und die Vorlagen für die Auswertung und die Eingaben erzeuge, dann dauert das mehr als 7 Minuten, was für die Arbeit mit der Tabelle eigentlich nicht zumutbar ist.
Hat von Euch hier jemand eine Idee, wie ich mit einfachen Mitteln abhilfe schaffen kann und die Performance der Tabelle steigern kann. Das ganze auf Datenbankbasis zu machen hatte ich mir auch schon überlegt funktioniert aber nicht so recht, da es hier auch Schnittstellen zu anderen Programmen gibt, die nur auf Excelbasieren. Zumindest was meinen Kenntnisstand dazu umfasst.
Über Hinweise und Hilfe würde ich mich sehr freuen.
Grüße,
Marc

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zu viele Formeln - Tabelle langsam - was tun?
20.07.2008 18:27:00
Martin
Hallo Marc,
Du kannst im Menü unter "Extras", "Optionen" auf dem Reiter "Berechnung" auf "Manuell" umstellen. Das hat den Vorteil, dass Excel nicht ständig im Hintergrund alle Formeln berechnet und somit wesentlich schneller ist. Sobald Du die Funktionstaste "F9" betätigst, berechnet Excel alle Formeln.
Eine zweite Möglichkeit bietet VBA. Ich habe auch eine sehr umfangreiche Exceltabelle und schreibe mit VBA alle Formeln in die Zellen und lassen anschließend die Formeln durch Ihre Werte ersetzen. Aber das wird Dir wahrscheinlich zu weit gehen!
Viele Grüße
Martin

Anzeige
AW: Zu viele Formeln - Tabelle langsam - was tun?
21.07.2008 10:32:55
Marc
Hallo,
danke für die vielen Hinweise - das Umstellen auf "manuelle Berechnung" scheint mir unter Beachtung meiner Excelfähigkeiten sinnvoll. Allerdings müssen regelmäßig Berechnungen durchgeführt werden. Insbesondere dann, wenn Werte geändert wurden. Da die Tabelle auch von Dritten verwendet werden soll, behinhaltet das "F9-drücken" als eine wesentliche Fehlerquelle. Interessant ist das, wenn ich dieses "F9-drücken" als VBA Code schreiben könnte und mit als Funktion in einen Button eingliedern kann. Ich nehme an, dass der Code von "oben nach unten" abgearbeitet wird. Ich habe da nämlich einen Button, mit dem weitere Tabellenblätter erzeugt werden und das dauert mit Abstand am längsten, da die Tabellenblätter bereits Formeln beinhalten, die wieder mit anderen Tabellenblättern verknüpft sind.
Es wäre nun meine Idee die Berechnung auf "manuell" umzustellen und am Ende des Codes des Button_Click als VBA-code "F9-drücken" einzufügen. Ist die Frage, ob das so funktioniert, oder ob der Code schneller durchläuft als die Tabellenblätter erzeugt werden!? Was meint ihr dazu und könnte mir evtl. jemand einen Hinweis geben, wie der VBA-code für "F9-drücken" sein kann. Alle Formeln als VBA-Code zu schreiben hat auch was für sich, allerdings weiß ich hier zum einen nicht wie ich eine Formel als VBA-Code schreibe zu anderen weiß ich nicht, wie ich in den VBA-Code einbinde, dass nach der Berechnung die Formeln aktualisiert werden sollen. Durch die Thematik mit der langsamen und schnellen Variante der Formeln bin ich noch nicht durchgestiegen. Ich habe das an einigen Tabellenblättern einmal exemplarisch durchgespielt, es scheint aber tatsächlich wesentlich komplizierter zu sein als zunächst gedacht.
Würde mich über weitere Hilfe sehr freuen.
Viele Grüße,
Marc

Anzeige
AW: Zu viele Formeln - Tabelle langsam - was tun?
21.07.2008 10:46:56
Martin
Hallo Marc,
der VBA-Code zum Rechnen lautet ganz einfach "Calculate". Das mit dem Button "Berechnen" geht problemlos.
VBA-Codes können auch Ereignisbasierend ausgelöst werden (Wenn sich Zelle ändert, Auswahl verändert, Blatt aktiviert/deaktiviert wird, Doppelklick, Rechtsklick, Öffnen/Schließen der Exceldatei usw.).
Mit "Extras" und "Makro aufzeichen" kannst Du Formeln in Excel schreiben und Dir anschließend ansehen, wie das ganze in VBA aussieht. Ich denke, dass Du recht schnell das Prinzip verstehen wirst.
Tipp: Zeichne die Funktionen im "Relativen Verweisen" auf.
Viele Grüße
Martin

Anzeige
AW: Zu viele Formeln - Tabelle langsam - was tun?
21.07.2008 11:58:14
Marc
Hallo Martin,
danke für den Hinweis, das scheint soweit alles prima zu funktionieren, die Tabelle ist damit auch wieder schön performant. Ein Problem habe ich allerdings noch, wenn ich in der Tabelle im Tabellenblatt 1 in einer Zelle einen Wert ändere, dann muss die ganze Tabelle sofort neu berechnet werden - gibt es eine Möglichkeit einzustellen, dass Excel bei Änderung des Wertes in dieser Zelle automatisch neu berechnet bzw. evtl. kann ich das auch als VBA-Code schreiben - wie müsste dieser dann aussehen!?
Danke und Gruß,
Marc

Anzeige
AW: Zu viele Formeln - Tabelle langsam - was tun?
21.07.2008 12:23:00
mpb
Hallo Marc,
wenn es sich um die Zelle A1 in Tabelle1 handelt, folgenden Code in das Klassenmodul dieser Tabelle kopieren:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Worksheets("Tabelle1").Calculate
End If
End Sub


Gruß
Martin

Anzeige
AW: Zu viele Formeln - Tabelle langsam - was tun?
21.07.2008 13:23:00
Martin
Hallo Marc,
gehe in den VBA-Editor (Alt+F11) und klicke im VBA-Projekt Deiner Exceldatei im Ordner "Microsoft Excel Objekte" doppelt auf "DieseArbeitsmappe" und füge folgenden Code ein:

Private Sub Workbook_Open() 'Berechnung wird beim Öffnen der Datei auf Manuell gesetzt
Application.Calculation = xlCalculationManual
End Sub



Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Berechnung wird beim Schließen der Datei  _
auf Automatisch gesetzt
Application.Calculation = xlCalculationAutomatic
End Sub



Private Sub Workbook_Activate() 'Berechnung wird beim Wechsel zu dieser Exceldatei auf Manuell  _
gesetzt
Application.Calculation = xlCalculationManual
End Sub



Private Sub Workbook_Deactivate() 'Berechnung wird beim Wechsel zu einer andern Exceldatei auf  _
Automatisch gesetzt
Application.Calculation = xlCalculationAutomatic
End Sub



Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ActiveSheet.Calculate 'Bei Änderungen in Zellen wird das aktuelle Blatt neu berechnet
End Sub


Dann sollte alles wie gewünscht klappen!
Viele Grüße
Martin

Anzeige
AW: Zu viele Formeln - Tabelle langsam - was tun?
20.07.2008 20:15:29
Daniel
Hi
beim Umgang mit grossen Datenmengen kann man folgende Vorgehensweisen verwenden:
1. viele SVERWEISE in einer Zeile, die den gleichen Suchbegriff verwenden
hier kann es Sinnvoll sein, die Zeilen-Nr mit der Vergleichsfunktion zu ermitteln und die Daten dann mit der INDEX-Funktion aus der anderen Tabelle auszulesen. Dadurch wird die zeitaufwendige Vergleichsfunktion nur ein einer Spalte benötigt und nicht in vielen.
2. Formeln werden nur bei Datenaktualisierung benötigt
bei vielen SVerweisen ist es so, daß diese nur benötigt werden, wenn in der Quelldatei neue Daten ankommen.
Wenn dies nicht permanent, sondern nur in grösseren Zeitabständen passiert, kann es sinnvoll sein, die SVERWEIS-Formeln mit KOPIEREN und INHALTE EINFÜGEN - WERTE durch Werte zu ersetzen.
dadurch steigt die Verarbeitungsgeschwindigkeit enorm.
steht eine Datenaktualisierung an, müssen die Formeln wieder hergestellt werden, daß mache ich dadurch, daß ich die Formeln in der ersten Zeile stehen lasse, dann brauche ich sie nur per Mausklick nach unten kopieren.
die Wartezeit beim Daten aktualisieren bleibt dann zwar bestehen, aber das Normale Arbeiten mit den Daten geht wesentlich schneller (zusätzlich sollten, die Formeln noch an einer anderen Stelle gesichtet werden, denn manchmal vergiisst man, beim WERTE EINFÜGEN, die erste Datenzeile wegzulassen.
3. Schnellen SVERWEIS und VERGLEICH verwenden.
die beiden Funktionen haben 2 Varianten ,die über den letzen Parameter gesteuert werden (beim SVerweis der 4, beim Vergleich der 3.)
ist dieser =0 oder FALSCH, dann haben wir die langsame Variante, ist dieser =1 oder WAHR, dann haben wir die schnelle.
beim Arbeiten mit der Schnellen Variante muss man allerdings folgendes beachten:
- die Quelldaten müssen nach dem Suchbegriff (1. Spalte der Suchmatirx) aufsteigend sortiert sein.
- es gibt keine Fehlermeldung, wenn der Suchbegriff nicht gefunden wird, stattdessen wird der nächstkleinere Wert verwendet.
Sollte bei nicht vorhandenem Suchbegriff eine Fehlermeldung erforderlich sein, dann kann man dies Abbprufen, in dem man einen SVERWEIS auf die 1. Spalte der Suchmatrix durchführt und den Rückgabewert mit dem Suchbegriff vergleicht:

=Wenn(A1=SVerweis(A1;Tabelle2!A:D;1;1);SVerweis(A1;Tabelle2!A:D;3;1);"Nicht gefunden")


auch mit dieser Zusatzprüfung ist der Schnelle SVerweis dem langsamen deutlich überlegen und sollte bei grösseren Datenmengen auf jeden Fall verwendet werden.
Gruss, Daniel

Anzeige
Schneller SVERWEIS
21.07.2008 06:26:47
Erich
Hallo Daniel,
der schnelle SVERWEIS ist ja interessant. Wenn das Suchkriterium aber nicht aufsteigend sortiert ist,
scheidet der schnelle SV aber aus - habe ich das richtig verstanden?
mfg
Erich

AW: Schneller SVERWEIS - korrekt
21.07.2008 19:10:36
Daniel
Hi
ja so ist es.
allerdings ist der Geschwindigkeitsvorteil des schellen SVerweises einige Mühen wert.
ist im Prinzip das gleiche, wie in einem klassischem Telefonbuch:
Die Suche nach einem Namen entpricht dem schnellen SVerweis, die Suche nach einer Telefon-Nr entspricht dem langsamen SVerweis
Gruß, Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel-Performance optimieren: Zu viele Formeln - was tun?


Schritt-für-Schritt-Anleitung

  1. Manuelle Berechnung aktivieren: Gehe zu Extras > Optionen > Reiter Berechnung und stelle die Berechnung auf Manuell. Dadurch wird verhindert, dass Excel ständig alle Formeln neu berechnet. Um die Berechnung manuell auszuführen, drücke die F9-Taste.

  2. VBA zur Berechnung verwenden: Wenn Du eine Schaltfläche zum Berechnen erstellen möchtest, kannst Du den folgenden VBA-Code verwenden:

    Private Sub CommandButton1_Click()
       Application.Calculate
    End Sub
  3. Zellenänderungen überwachen: Um bei Änderungen in bestimmten Zellen automatisch Berechnungen auszuführen, kannst Du folgenden Code in das Klassenmodul der betreffenden Tabelle einfügen:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$A$1" Then
           Worksheets("Tabelle1").Calculate
       End If
    End Sub
  4. Berechnung beim Öffnen und Schließen der Datei anpassen: Füge den folgenden Code in das Modul DieseArbeitsmappe ein, um die Berechnungseinstellungen beim Öffnen und Schließen der Datei zu steuern:

    Private Sub Workbook_Open()
       Application.Calculation = xlCalculationManual
    End Sub
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Application.Calculation = xlCalculationAutomatic
    End Sub

Häufige Fehler und Lösungen

  • Excel berechnet ständig: Wenn Excel immer wieder Berechnungen durchführt, kann dies an der automatischen Berechnung liegen. Stelle sicher, dass Du auf Manuell umgeschaltet hast.

  • Formeln aktualisieren sich nicht: Wenn Excel-Formeln nicht aktualisiert werden, kann es hilfreich sein, die Taste F9 zu verwenden, um die Berechnung manuell auszulösen.

  • Tabelle extrem langsam: Bei großen Datenmengen kann es nützlich sein, Formeln durch Werte zu ersetzen, wenn diese nicht mehr benötigt werden. Dies beschleunigt die Verarbeitung erheblich.


Alternative Methoden

  • SVERWEIS optimieren: Statt viele SVERWEIS-Formeln in einer Zeile zu verwenden, solltest Du die INDEX-Funktion nutzen, um die Verarbeitung zu beschleunigen.

  • Formeln nur bei Bedarf anwenden: Reduziere die Anzahl der Formeln, die ständig aktualisiert werden, und setze sie nur dort ein, wo eine Aktualisierung notwendig ist.

  • Verwendung des schnellen SVERWEIS: Achte darauf, dass die Daten nach dem Suchbegriff aufsteigend sortiert sind, um den schnellen SVERWEIS nutzen zu können. Dies kann die Berechnung erheblich beschleunigen.


Praktische Beispiele

  • Beispiel für manuelle Berechnung: Wenn Du eine umfangreiche Tabelle mit vielen Formeln hast, aktiviere die manuelle Berechnung. Wenn Du dann Daten änderst, drücke F9, um die Berechnungen durchzuführen.

  • Beispiel für VBA-Berechnung: Erstelle einen Button in Deiner Excel-Tabelle und füge den Code für Application.Calculate hinzu. Dies ermöglicht es Dir, alle Berechnungen mit einem Klick auszuführen.


Tipps für Profis

  • Vermeide unnötige Formeln: Reduziere die Anzahl der Formeln, indem Du nur die benötigten Berechnungen durchführst. Dies kann die Excel-Berechnung beschleunigen.

  • Nutze VBA für komplexe Berechnungen: Wenn Du regelmäßig viele Formeln aktualisieren musst, kann VBA eine effektive Lösung sein, um die Berechnung automatisiert durchzuführen.

  • Optimierung durch bedingte Formatierung: Verwende bedingte Formatierungen sparsam, da diese auch die Performance beeinträchtigen können.


FAQ: Häufige Fragen

1. Warum dauert die Excel-Berechnung so lange?
Die Berechnungszeit kann durch viele komplexe Formeln und große Datenmengen verursacht werden. Die Umstellung auf manuelle Berechnung kann hier helfen.

2. Was kann ich tun, wenn Excel langsam ist?
Stelle sicher, dass Du unnötige Formeln entfernst und die Berechnung auf Manuell umschaltest. Verwende auch VBA, um die Berechnungen effizienter zu gestalten.

3. Wie kann ich die Performance meiner Excel-Datei verbessern?
Ersetze Formeln durch Werte, wo möglich, und optimiere SVERWEIS- und INDEX-Funktionen. Eine gut strukturierte Tabelle kann die Performance ebenfalls verbessern.

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