ich habe mich dem Performance Problem noch mal etwas analytischer zugewandt. Ich habe mir einen Benchmark gebaut = wie lange braucht die Berechnung nach eine Eingabe wenn alle Formeln "an" sind. Schön mit Stoppuhr abgemessen. Das habe ich dann bei allen nötigen Eingabefeldern gemacht um so zu sehen bei welchen Eingaben Excel wie lange rechnet.
Dann habe ich alle Spalten mit Formeln eine nach der anderen "ausgeschaltet" (einfach die Formeln gelöscht) und wieder geschaut wie lange nun bei einer Dateneingabe gerechnet wird.
Ziemlich viel Zeit gestoppt habe ich da, aber jetzt bin ich schlauer: die Formeln die richtig, richtig viel verbrauchen sind jene in denen ich per Summewenn eine ganze Spalte (macht übrigens keinen Unterschied ob z.B: nur 10.000 Zeilen oder wirklich die ganze Spalte A:A) nach einem Eintrag durchsuche, und dann eine Summe aus den entsprechenden Beträgen die zu dem gesuchten Eintrag passen, bilde. Ein solche Formel in 6.000 Zeilen kopiert, frisst richtig was weg. Ich habe zwei Spalten à 7.000 Zeilen in denen eine solche Formel ist - wenn die "an" sind, dann rechnet mein Benchmark im schlimmsten Fall 30 Sekunden, wenn sie "aus" sind, dann rechnet der Benchmark max. eine Sekunde.
Deswegen jetzt meine Frage:
Gibt es irgendeine andere Möglichkeit außer mit Summewenn, durch einen Funktion folgendes zu erreichen:
In einer nicht sortierten Liste (also nicht alphabetisch sortiert, etc.) von 7.000 Einträgen, sollen alle Beträge in Spalte J zusammengerechnet werden, die in Spalte G den gleichen Eintrag (ID) haben. Es handelt sich in vielen Fällen (70%) nur um eine einzigen Eintrag pro ID, aber es gibt eben auch einige Fälle (30%) in denen von 2 bis 50 Einträgen alles dabei sein kann. Also einen Ersatz für diese Formel:
SUMMEWENN(G:G;G9;J:J)
Viele Grüße,
Martin