Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Performance Formel oder Function?

Performance Formel oder Function?
11.06.2006 09:27:59
Jürgen H
Guten Morgen zusammen,
ich habe eine Frage: Wir haben seit einigen Jahren eine Exceltabelle in die zum einen täglich Daten aus einem Warenwirtschaftssystem fließen und zum zweiten auch manuell Daten eingegeben werden. Nun sind unsere Rechner von Windows 2000 + Office 2000 auf Windows XP und Office 2003 modifiziert worden, was dazu geführt hat, das einige Excelanwendungen, besonders diese mit vielen Formeln, sehr langsam geworden sind.
Bei dieser Datei hier, werden Artikel nach Schmuck und keine Schmuck getrennt. Leider gibt es hier mehrere Kriterien, was sich auch so nicht ändern lässt.
Ursprünglich gab es ein separates Tabellenblatt mit 13 Hilfsspalten, nur um diese Berechnung durchzuführen. Jetzt habe ich das Ganze in einer einzelnen Formel zusammen gefasst und die Berechnung ist schon deutlich schneller.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Performance Formel oder Function?
11.06.2006 09:47:09
Herbert
Hi,
grundsätzlich sind Formeln, selbe Funktionalität vorausgesetzt, um Längen schneller
als VBA-Funktionen.
mfg Herbert
AW: Performance Formel oder Function?
11.06.2006 09:54:33
Jürgen H
Hallo Herbert,
danke für die schnelle Antwort. Gut dann kann ich mir die VBA-Herausforderung sparen.
Gruß Jürgen
AW: Performance Formel oder Function?
11.06.2006 10:28:07
Luschi
Hallo Jürgen,
wie Herbert schon sagte, bring das Austauschen der Excel-Funktionen gegen eine Vba-Code-Funktion überhaupt keinen Geschwindigkeitsschub, sondern macht die Sache eher noch langsamer.
Das gilt aber nur für den Fall, das man in K3 schreibt: =SchmuckJaNein(A3;B3;C3) und diese Funktion in Vba programmiert.
In unserer Firma sind wir bei großen Datenmengen dazu übergegangen, die Formeln aus den Excel-Tabellen total zu Löschen und dafür über ein Button die Berechnung aller Ergebniszellen (hier Spalte K) in einer Vba-Prozedure insgesamt vorzunehmen.
Das heißt, das in der Spalte K keine Formeln mehr stehen und die Ergebniswerte den Zellen der Spalte K von Vba aus direkt zugewiesen werden.
Das bringt einen erheblichen Gesamtgeschwindigkeitszuwachs, da nicht nach jeder Zelländerung Excel rechnen muß, sondern erst nach dem Drücken des Buttons.
Dieses Verfahren birgt natürlich auch Risiken. Sollte sich die Tabellenstruktur ändern, dann muß auch die Vba-Prozedur geändert werden. Aber auch hier sind wir inzwischen soweit, daß über die Vergabe von Namensbereichen für Zeilen- und Spaltenüberschriften kaum noch Programmieraufwand betrieben werden muß.
Doch dazu braucht man natürlich auch schon ein bischen Vba-Erfahrung.
Insgesamt ist Dein Problem nicht so umfangreich. deshalb würde ich Dir helfen, das mal in Vba umzusetzen.
Wenn Du ein kleine Demodatei (wenige Zeilen,korrekte Spaltenaufteilung, fiktive Daten) hier bereitstellst, dann mach ich Dir 1 Lösungsvorschlag.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Performance Formel oder Function?
11.06.2006 11:12:22
Jürgen H
Hallo Luschi,
danke für deine Anregung und dein Hilfeangebot. Auf die Idee, per VBA die Bezeichung JW bzw HG direkt einzutragen bin ich noch garnicht gekommen. Das wird die Performance natürlich deutlich erhöhen. Ich habe gerade mal versucht eine Beipieldatei zu kreieren, aber egal wie sehr ich sie abspecke, sie ist immer zu groß.
Ich denke aber auch, dass ich es selber in VBA umsetzen kann. Erscheint mir zumindest einfacher als eine VBA-Funktion, die dann als Formel verwendet werden kann. Werde mal ein bisschen "rumspielen". Wenn´s nicht klappt melde ich mich noch mal, wie immer:-)
Danke und Gruß Jürgen
Anzeige
AW: andere Formel
11.06.2006 12:39:08
FP
Hallo Jürgen,
probier mal:
=WENN(ODER(LINKS(B3)={"3"."6"})+ODER(LINKS(B3)="7";LINKS(B3;3)="568")*SUMME(ZÄHLENWENN(C3;{"*münz*"."*muenz*"."*uhr*"."*lexikon*"."*zippo*"}));"JW";"HG")
Servus aus dem Salzkammergut
Franz
AW: andere Formel
11.06.2006 15:36:42
Jürgen H
Hallo Franz,
bin gerade nach Hause gekommen, deshalb auch erst so spät ein Feedback. Also habe deine Formel ausprobiert und es könnte sein, dass sie in der Tat etwas schneller ist. Jedoch habe ich auch nur einige Datensätze zum probieren hier. Mit reellen ca 3000 - 4000 Zeilen kann ich es erst nach meinen Urlaub in 2 Wochen testen.
Ich denke aber das ich über kurz oder lang am besten mit einer VBA-Lösung fahre, die mir das einmalig pro Tag berechnet.
Aber nochmals vielen Dank, das du dir die Mühe gemacht hast, eine alternative Formel zu kreieren.
LG Jürgen
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige