Moin,
ich habe eine recht große Excel Datei, die Berechnungen ausführt und Abfragen über ca. 3000 Zeilen je Tabellenblatt enthält. Ein Großteil davon sind auch wenn-dann Formeln, damit die Berechnungen erst ausgeführt werden, wenn Werte eingegeben worden sind, und natürlich für Verzweigungen in den Bedingungen.
Diese Tabelle wird immer mehr erweitert, ist schon über 40MB groß und inzwischen sehr langsam. Wo kann ich da ansetzten, die Geschwindigkeit zu verbessern. Berechnung sollte gerne automatisch bleiben.
In welche Richtung sollte ich mich umschauen?
Lars
Office - Word, Excel und Co. 9.753 Themen, 41.597 Beiträge
Dieser Beitrag wurde entfernt weil er vermutlich rechtlich bedenklich ist und dem Nickles-Teilnehmer Ärger bereiten könnte (Beispiel: Bezeichnung einer Firma als "Betrüger" obwohl noch kein Gerichtsurteil wegen Betrugsvorfalls gefällt wurde). Entfernt werden auch Hinweise und Anfragen bezüglich illegaler Dinge (Beispiel: Hinweise zu Raubkopien oder Mechanismen zum Umgehen eines Kopierschutzes). Ebenfalls entfernt werden Beiträge, die das Urheberrecht verletzen (beispielsweise Kopieren von Texten anderer Internetseiten).
Danke für die Antwort. Dann versuche ich es noch weiter zu beschreiben:
Die Dateigröße kommt dadurch zustande, dass in ca. 20 Tabellenblättern auf ca. 3000 Zeilen in 50 Spalten wenn-dann Abfragen stehen, die überprüfen, ob in bestimmten Eingabefeldern (oft die Spalte A) Werte vorhanden sind, um dann die Formel auszuwerten. Dabei werden nicht oft die 3000 Zeilen genutzt, sondern nur ein Bruchteil. Meist sind die Formeln pro Spalte gleich mit angepassten Bezügen wie in Tabellenkalkulationen üblich.
Kann diese Abfrage eleganter gelöst werden.
Die Option der manuellen Berechnung kenne ich und hatte sie in meinem Anfangsposting ausgeschlossen.
Gruß, Lars
Hi,
wir hatten in der Firma ein- bis zweimal das Phänomen, dass ich Excel-Datei wie von Geisterhand aufgebläht haben...
Nachdem man die Tabellenblätter in eine leere Excel-Datei kopiert hatte, hatte die "neue" Datei wieder eine normale Größe.
Ich kann Dir nicht sagen, ob es hilft - aber einen Versuch wäre es wert.
Viel Glück
Fetzo
Hallo Fetzo,
danke für den Hinweis, aber das ist es nicht, die ganzen wenn-dann Abfragen machen das schon sehr träge.
Lars
Du könntest mal prüfen, ob nicht zumindest ein Teil dessen, was ihr derzeit mit Formeln macht, auch über eine Pivot-Tabelle gelöst werden kann.
Konkrete Empfehlungen kann man hier, mangels Kenntnis der Tabelle, nicht geben.
Volker
Eine pauschale Antwort darauf gibt es nicht dazu müsstest du das Workbook einsehbar machen.
Zuerst musst du die Daten auf dessen Basis du rechnest auslagern, in eine Datenbank oder einfach XML Dateien.
Dann wirds schon konkret, nehmen wir mal an es handelt sich um 19 Artikel und eine Zusammenfassung = 20 Arbeitsblätter, dann kannst du überlegen ob du diese in einzelne Workbooks auslagerst, etwas VBA Script zum lesen/schreiben der ausgelagerten Stammdaten wird dann notwendig sein aber wie gesagt das ist nur ein Fallbeispiel.
Moin,
nein, die kann ich nicht einsehbar machen, aber es handelt sich um recht aufwendige Berechnungen von jedesmal gleichartigen Strukturen. Es gibt einiges an Geometrie und Lasteingaben und in Abhängigkeit von diesen Eingaben erfolgt dann eine Berechnung und Auswertung. Die Datei gibt es schon seit einiger Zeit und die Benutzer sind daran gewöhnt. Jetzt wird sie aber stark erweitert. VBA nutzen wir schon, ich hoffte nur auf einen Hinweis, dieses =wenn(A1="";"";?????????) durch etwas elegantes ersetzten zu können.
Dann ggf. eben doch VBA um die Zellen erst zu füllen, wenn sie gebraucht werden.
Danke, Lars
Du könntest die Makros gegen eine VBA Berechnungsfunktion ersetzen die dann auf Knopfdruck ausgeführt werden kann.
Dann ist das was der Benutzer sieht natürlich nicht jederzeit 100% aktuell.
Aber eines bleibt, die Datei ist einfach zu gross !!!
ja, die Größe finde ich auch nicht mehr schön, aber alles auf VBA umzustricken wird sehr aufwendig, da werde ich erstmal nur die vermutlich wichtigen Punkte anfassen. Danke, Lars
Vielleicht hilft Dir als Denkanstoß das Notenschlüsselbeispiel.
Bis 92 pt = Note1. Bis 81pt = Note 2. Bis 67pt = Note 3. Bis 50pt = 4. Bis 30pt = 5. Darunter 6.
In Excel kann man das entweder mit einer ellenlangen fünffach verschachtelten wenn-Funktion machen oder - viel eleganter mit einem sverweis:
=SVERWEIS(B1;C1:D6;2) .
Hallo,
wenn ich es richtig vertehe ist der Grund für die WENN/DANN einzig die Unterdrückung der Anzeige, wenn (noch) nichts eingegeben ist. Wenn die Tabelle einfach über die Zeit nach unten erweitert wird, dann lege sie als Liste an (bis XL2003, in 2007 als Tabelle). Da sorgt Excel dann dafür, daß Formel in neue Sätze übernommen werden.