Ich habe die Fehlermeldung "Excel hat beim Versuch, eine oder mehrere Formeln zu berechnen, nicht genügend Ressourcen zur Verfügung" erhalten aufEINSmeiner Computer (von 2).
Mein Arbeitsblatt enthält: (In einem einzelnen Arbeitsblatt (keine Arbeitsmappe) befinden sich Formeln in einem anderen Arbeitsblatt)
1.000.000 Formeln
- eine Pivot-Tabelle mit 900.000 Datenzeilen
Wenn ich Excel/VBA für die Aktion „Blatt berechnen“ (nur das aktuelle Arbeitsblatt) ausführe, zeigt das Programm die folgende Fehlermeldung an:
Excel ran out of resources while attempting to calculate one or more formulas
weder kann ich eine Pivot-Tabelle in (Excel oder VBA) „aktualisieren“ noch „Tabellenblatt berechnen“ in (Excel oder VBA).
Ich habe 2 Computer:
beide laufen unter 64-Bit Windows 7,
beide laufen mit Excel 2007 32Bit,
Ich führe Excel direkt nach dem Start von Windows aus.
mein Entwicklungs-PC mit 2GB RAM läuft problemlos,
Ein anderer PC mit 6 GB RAM zeigte die
ran out of resources
FehlermeldungAusführung mit demselben Datensatz, derselben Excel-Datei
Mir fällt auch auf, dass auf meinem Entwicklungs-PC ca. 1,2 GB RAM verwendet werden und auf dem nicht funktionierenden PC 900 MB RAM, bevor ich auf die Aktion „Aktualisieren“/„Berechnen“ klicke.
BEARBEITEN
Der nicht funktionierende Computer kann Daten innerhalb von 100.000 Datenzeilen verarbeiten
Meine Fragen:
- Warum funktioniert es bei Computern mit weniger Speicher, aber nicht bei Computern mit mehr Speicher? (Hauptfrage)
- Was kann ich tun, um den von Excel verwendeten Speicher zu reduzieren? (Unterfrage) (Außer durch Löschen von Daten)
Ich bin für jede Hilfe dankbar. Bitte weisen Sie mich in die richtige Richtung oder geben Sie mir einfach einen Hinweis.
BEARBEITEN:Ich denke darüber nach, die Formeln zu entfernen und die Logik in VBA zu verschieben und dies zu tun, indem ich die Daten vielleicht pro 10.000 Zeilen zwischenspeichere. Aber das wird mein Problem nicht lösen, wenn beim „Aktualisieren“ der Pivot-Tabelle derselbe Fehler angezeigt würde.
Antwort1
Der Grund ist wahrscheinlich die unterschiedliche 32-Bit-Speicherfragmentierung auf den beiden PCs (es ist oft schwierig, die theoretisch verfügbaren 2 GB vollständig zu nutzen).
Sie können den von der Pivot-Tabelle verwendeten Speicher reduzieren, indem Sie die Anzahl der Spalten verringern und/oder den von einigen Spalten benötigten Speicher reduzieren (Textzeichenfolgen sind ein guter Kandidat).
(Sie können den vom Pivot-Cache verwendeten Speicher mit VBA PivotCache.memoryUsed messen.)
Ich gehe davon aus, dass Sie den Pivot-Cache erstellen, indem Sie die Daten aus der Abfrage direkt in den Pivot-Cache lesen, anstatt die Abfragedaten in ein Arbeitsblatt einzugeben und die Pivot-Tabelle auf dem Arbeitsblatt zu basieren, was viel mehr Speicher verbrauchen würde.
Sie sagen nicht, was die >1000000 Formeln sind, daher habe ich keine Verbesserungsvorschläge für sie.
Wenn Sie große Datenmengen in Excel-Pivots usw. verwenden möchten, erhalten Sie mit der 64-Bit-Version von Excel 2010, die nicht über die 2-GB-Begrenzung verfügt, bessere Ergebnisse
Antwort2
danke für alle Vorschläge, Lektüren und Hilfe. Ich habe das Problem gelöst durch
- Ändern Sie alle Formeln schrittweise in Werte pro ~ 100.000 Zeilen --- Dies reduziert den von Excel belegten Speicher um 10 %
- Alle unnötigen Daten/Arbeitsblätter aus der Arbeitsmappe entfernt (die Rohdaten vor der Datenbearbeitung) --- Dadurch wird der von Excel belegte Speicher um 40 % reduziert.
Und das Lesenhttp://www.add-ins.com/support/out-of-memory-or-not-enough-resource-problem-with-microsoft-excel.htmschlage vor, warum dieses Problem bei PCs mit 6 GB RAM und nicht bei PCs mit 2 GB RAM auftritt. Ich denke, es liegt daran, dass auf dem 6G-PC viele Excel-Add-Ins installiert sind, die ebenfalls RAM verbrauchen.
Danke für die Hilfe.
Antwort3
alte Frage, aber immer noch gültig für alle Versionen. Ich stoße auf ähnliche Probleme, wenn die Formeln, die ich verwende, einen zu großen Umfang haben, obwohl die meisten Felder leer sind, z. B.: DO_CALCULATION(D1:D100000) nimmt viel Zeit und Speicher in Anspruch, selbst wenn nur die Zellen D1:D10 einen Wert haben. Seien Sie also vorsichtig, wenn Sie versuchen, Formeln für die Datenerweiterung vorzubereiten, und halten Sie die Bereiche klein :)
Antwort4
Die Lösung besteht darin, auf eine 64-Bit-Version von Excel zu aktualisieren. Diese kann einen viel größeren Speicherbereich ansprechen, ist außerdem im Allgemeinen viel schneller und das richtige Werkzeug für die Aufgabe, wenn Sie eine große Tabellenkalkulation haben.