Anzeige
Archiv - Navigation
812to816
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
812to816
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Effizienz - Formel vs. Funktion

Effizienz - Formel vs. Funktion
26.10.2006 18:14:01
Christian
Hi,
habe mal eine grundsaetzliche Frage. Ich habe ein Makro, welches 8 Sheets erstellt und nacheinander mit Daten befuellt (ca. 400 Zeilen und 20 Spalten auf jedem Sheet). Fuer manchen Zellen brauche ich wiederum Formeln, da sich ihre Werte erst aus den eingefuegten Daten errechnen.
Jetzt kann ich es entweder als Formel oder als Funktion machen.
Nur stellt sich bei so einer Datenmenge, die Frage nach der Effizienz.
Was meint ihr? Was ist besser?
Vielen Dank im Voraus.
Christian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Effizienz - Formel vs. Funktion
26.10.2006 18:59:22
KarinW
Hallo Christian,
vielleicht gibt es ja bei Excel 2003 eine allgemein gültige Antwort auf Deine Frage.
Ich selbst habe O97.
Bei umfangreichen Berechnungen lese ich beim Start des Makros die Startzeit, zum Ende die Endzeit aus.
Zuletzt lasse ich mir dann die Zeit in einer msgbox anzeigen.
Dies mache ich mit jeder Variante.
Dieser Zeitwert ist allerdings nicht aussagekräftig, falls Daten von Servern abgefragt werden.
Freundliche Grüße
Karin
AW: Effizienz - Formel vs. Funktion
26.10.2006 19:46:33
Christian
Hallo Karin,
vielen Dank, das werde ich mal versuchen.
Gruss
Christian
AW: Effizienz - Formel vs. Funktion
27.10.2006 00:06:50
Daniel
Hallo
ich verstehs grad nicht ganz wo der Unterschied ist.
Meinst du mit Funktion, daß du in VBA die Werte berechnest und dann als Fix-Wert in Excel einträgst
und mit Formel, daß du anstelle des berechneten Fix-Wertes die Berechnungsformel in die Zelle schreibst?
Wenn es so ist, dann halte ich die 2. Lösung aus VBA-sicht für die bessere.
Wenn du die Werte erst in VBA berechnen willst, wird das viel Rechenaufwand bedeuten, weil du in einer Schleife jeden einzelnen Wert in VBA berechnen musst. Das ist sehr langsam, weil VBA eine Interpreter-Sprache ist, dh. das Programm liegt nur im Quellcode vor und muß beim Ablauf erst in die Maschinensprache umgesetzt werden, und das ist laaaaaangsam.
Wenn du dagegen Formeln einträgst, brauchst du keine Schleifen, weil die Formeln für einen ganzen Zellbereich identisch sind und en Block reingeschrieben werden können. Die Berechnung der Angezeigten Werde wird dann von Excel direkt übernommen, und das liegt schon in Maschinensprache vor, damit ist die Berechnung um ein vielfaches schneller.
Das heißt, für den Makroablauf ist es wahrscheinlich besser, wenn du anstelle in VBA die Einzelwerte zu berechnen die Formeln in die Zellen schreibst.
Anders sieht es natürlich aus, wenn nach dem Makrolauf mit der Datei gearbeitet werden soll, vor allem, wenn die Tabellen viele Formeln enthalten. Hier wäre es natürlich besser, Fix-Werte in den Zellen zu haben, weil dann die vollständigen Neuberechnungen, die u.U. auch viel Zeit kosten können, entfallen. Besondes deutlich wird das beim Autofilter, der immer eine Neuberechung auslöst.
Hier wäre wahrscheinlich das Optimum, während der Erstellung der Tabellen mit Formeln zu arbeiten, aber dananach nochmal ein "Range().Copy / Range().pastespecial xlpastevalues" über die Tabellen laufen zu lassen, dann hast du beide Vorteile miteinander vereint.
(das geht natürlich nur, wenn sich nach der Erstellung der Tabelle die Werte nicht mehr ändern, so daß kein permanenten Formeln erforderlich sind)
Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige