Ich hoffe es kann mir jemand bei bei meinem Problem helfen.
Ich habe ein Register "projectlist" wo Projektdaten von extern importiert werden. Die identifizierende ProjektNummer kommt entweder in Spalte C oder A vor. Wenn in Spalte C, dann kommt das Projekt nur einmal vor und ich übernehme den Wert aus Spalte S. Wenn in Spalte A, dann kommt das Projekt mehrmals vor und ich übernehme die Summe aus Spalte S .
Folgende Formel funktioniert einwandfrei, ist aber wegen SUMMEWENN fürchterlich langsam.
Das Problem ist, ich habe viele dieser Formeln und die Projektliste ist sehr lang. Seit ich SUMMEWENN () für die zweiten Teil anwenden, ist das gesamte Dokument sehr langsam geworden. Bei jeder Sortierung oder nur schon bei einem Klick auf eine andere Zelle, rechnet sich das Excel-File zu Tode.
Ist es möglich, die SUMMEWENN irgendwie anders abzufragen, welches weniger rechenintensiv ist. In dieser Form, kann man mit der Liste fast nicht mehr arbeiten.
Bin dankbar um jeden Tipp, dann kann ich es mal durchtesten.
Ich habe vermutet, dass es an der SUMMWENN liegen muss, da ich die Formel vorher mit SVERWEIS hatte, bis ich gemerkt habe, dass ein Projekt mehrfach vorkommen kann und dann in bestimmen Fällen falsche Werte zurück gegeben werden.
Mit dieser Formel arbeitete das Dokument normal schnell. =WENNFEHLER(WENNFEHLER(SVERWEIS(B8;projectlist!$A:$S;19;0);((SVERWEIS(B8;projectlist!$C:$S;17;0))));0)
Mit dieser Formel wahnsinnig langsam. =WENNFEHLER(SVERWEIS($B8;projectlist!$C:S;17;0);(SUMMEWENN(projectlist!$A:$A;B8;projectlist!S:S)
Ergänzend dazu, die Werte in "projectlist" sind alles importierte Daten und keine weiteren Formeln, was es ev zusätzlich verlangsamen könnte. Sie enthält jedoch 5000 Zeilen. Und die Berechnungen finden alle im gleichen Register statt, aber halt auch sehr viele solcher Zellen mit dieser Formel, ca. 9000.
Wenn SUMMEWENN ersetzt werden könnte, durch etwas, welche nicht über die ganze Spalte läuft, würde es vermutlich besser gehen. Was meint ihr?
Kann mir nicht vorstellen, dass ein doppeltes SUMMEWENN hilft, aber ich muss es mal ausprobieren.
ob ein doppeltes SUMMEWENN einen Geschwindigkeitsvorteil ergibt weiß ich nicht, aber aus der Aufgabenstellung wäre das für mich die einfachere Variante. Wieso 9000 Zellen mit Formeln? Wäre es jetzt nicht Zeit für ein Tabellenmuster???
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Okay, nun habe auch ich es verstanden. Du meinst ein Muster meiner Tabelle. Ja, werde ich machen, muss es allerdings stark verkleinern und reduzieren, da alle Daten raus müssen. Diese Version dürfte kein Performanceproblem mehr haben, aber es zeigt zumindest die funktionsweise.
13.04.2017, 20:38 (Dieser Beitrag wurde zuletzt bearbeitet: 13.04.2017, 20:38 von Pean.)
Hi,
Hier nun die abgespeckte Tabelle im Anhang.
Im Arbeitsblatt "Summary" werden die Projektdaten aus "projectlist" übernommen. Dies von Spalte V bis CA Die Liste in "Summary" enthält ca. 200 Zeilen. Die Liste in "projectlist" ca. 5000 Zeilen. In der Summe also ca. 9000 Zellen in Summary, welche die projectlist durchforsten.
Projectlist Die ProjektNummer steht entweder in Spalte A oder C. Wenn sie in A steht, sind Mehrfacheinträge möglich.
Die benutze Formel ist: =WENNFEHLER(SVERWEIS($B8;projectlist!$C:S;17;0);(SUMMEWENN(projectlist!$A:$A;B8;projectlist!S:S))) Bei aktuell ca. 150 Projekten, macht diese Formel die Bearbeitung jedoch extrem langsam, man kann kaum noch Arbeiten damit.
Irgend eine Idee, wie ich die Werte aus projectlist eleganter übernehmen kann.
PS: Die Makros im Dokument dürften euch eher rustikal vorkommen, aber sie funktionieren zumindest.
Vielen Dank für eure Mühe, mal einen Blick in die Tabelle zu werfen.