Geschwindigkeit bei Matrixformeln
23.07.2015 15:05:23
P-Quest
ich habe in einer Arbeitsmappe 2 Tabellen mit je ca. 200 Datensätzen.
In Tabelle Stammdaten verwende ich folgende Matrixformel:
{=WENN(MAX(WENN((EinAus!$A:$A=A6);EinAus!$C:$C))=0;"";MAX(WENN((EinAus!$A:$A=A6);EinAus!$C:$C)))}
Mit Hilfe der Formel hole ich mir aus Tabelle EinAus das Datum der letzten Buchung für jeden Artikel in Tabelle Stammdaten. Bei Artikeln, für die noch keine Buchung vorliegt, bleibt das Feld leer.
Das klappt auch - allerdings nur mit erheblichen Zeiteinbußen. Gebe ich eine Buchung per Userform ein, dauert es nach dem Klick auf speichern (im Userform) einige Sekunden bis sich das Userform schliesst. Man könnte schon den Eindruck bekommen, der Rechner sei abgestürzt.
Ein Abschalten der automatischen Berechnung während der Ausführung des Makros bringt nur eine kleine Zeitersparnis.
Die Berechnungen grundsätzlich auf manuell zu stellen scheidet aus, da die Anwender auch in der Tabelle direkt, also ohne Nutzung der Userforms, Änderungen vornehmen können. Sie müssten also ständig darauf achten, dass sie die Berechnungen aktualisieren.
Ich stelle meine Frage mal ganz allgemein:
Hat jemand eine Idee, wie ich, unter Berücksichtigung der o.g. Rahmenbedingungen, mein Problem lösen bzw. meine Berechnungen beschleunigen könnte?
Für Vorschläge und Fragen bin ich jederzeit erreichbar :-)
Gruß,
Peter