SUMMEWENN - eleganter lösen
#1
Hallo Zusammen,

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.

Formel: =WENNFEHLER(SVERWEIS($B8;projectlist!$C:S;17;0);(SUMMEWENN(projectlist!$A:$A;B8;projectlist!S:S)))

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.

Vielen Dank
Grüsse und schöne Ostern
Pean
Top
#2
Hola,

versuch die Bereiche in den Formeln nicht über ganze Spalten laufen zu lassen.

Gruß,
steve1da
[-] Folgende(r) 1 Nutzer sagt Danke an steve1da für diesen Beitrag:
  • Pean
Top
#3
Hallo Pean,

ich glaube nicht, dass es an dieser Formel liegt. Soweit ich weiß ist weder SUMMEWENN, WENNFEHLER noch SVERWEIS volatil.

Ist es möglich, dass die Zellen auf die verwiesen wird volatile Funktionen enthalten? z.B. INDIREKT, HEUTE o.Ä?

Alternativ kannst Du auf manuelle Berechnung umschalten.
[-] Folgende(r) 1 Nutzer sagt Danke an Jonas0806 für diesen Beitrag:
  • Pean
Top
#4
Hi,

ich hätte zwei Summewenn draus gemacht.


Code:
=SUMMEWENN(projectlist!$C:$C;B8;projectlist!S:S))+SUMMEWENN(projectlist!$A:$A;B8;projectlist!S:S))
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Pean
Top
#5
Danke euch für die Anregungen.

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.
Top
#6
Hi,


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.
Top
#7
Hallo,

Naja, ich habe ca. 200 Projektzeilen und übernehme ca. 50 Budgetpositionen auf "projectlist". Dann komme ich auf 10'000 Zellen mit Formeln.

Tabellenmuster? Noch nie gehört, muss mich erste durch googlen.

Dank für den Tipp
Grüsse
Pean
Top
#8
Hi BoskoBiati,

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.

Grüsse
Pean
Top
#9
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.

Grüsse
Pean


Angehängte Dateien
.xlsm   DEV_template.xlsm (Größe: 780,13 KB / Downloads: 5)
Top
#10
Hi,

eine Spaßbremse an der anderen:

Arbeitsblatt mit dem Namen 'Summary'
 IJKLMNOP
8text027.01.201701 - Strategic1 - Criticalfinal842

ZelleFormel
I8=WENNFEHLER(INDIREKT("'"&$B8&"'!B4";WAHR);"")
J8=INDIREKT("'"&$B8&"'!G4";WAHR)
K8=WENNFEHLER(INDIREKT("'"&$B8&"'!AK1";WAHR);"n/a")
L8=INDIREKT("'"&$B8&"'!G6";WAHR)
M8=INDIREKT("'"&$B8&"'!AK6";WAHR)
N8=INDIREKT("'"&$B8&"'!U6";WAHR)
O8=INDIREKT("'"&$B8&"'!B10";WAHR)
P8=WENNFEHLER(INDIREKT("'"&$B8&"'!G10";WAHR);"")
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Warum beziehst Du Dich nicht auf Spalte K in Deiner Project list??:


Code:
=WENNFEHLER(INDEX(projectlist!B:B;VERGLEICH(B8;projectlist!K:K;0));"ID n/a")


Bei dem Tabellenaufbau wäre es wohl besser, alles über Makros laufen zu lassen.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste