Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
356to360
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
356to360
356to360
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Berechnungsdauer einer Formel ermitteln

Berechnungsdauer einer Formel ermitteln
06.01.2004 22:04:55
Boris
Hi Leute,

ich "untersuche" gerade verschiedene Funktionen respektive Formelmöglichkeiten, um die unterschiedliche Performance zu ermitteln. Bisher teste ich einfach nur - und mein "Gefühl" sagt mir, welche Lösung performanter ist.
Woran es mir fehlt, ist ein sehr genauer "Zeitmesser" - völlig egal, wie der aussieht - hauptsache er misst die Berechnungsdauer einer Formel.

Wie kann man das am Besten darstellen? Mit der kleinstmöglichen Maßeinheit.

Grüße {Boris}

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Berechnungsdauer einer Formel ermitteln
06.01.2004 22:07:19
andre
hallo boris,
einfach die formel 1000 mal oder mehr oder weniger oft in ein sheet einfügen und rechnen lassen, da reicht dann auch der sekundenzeiger ...
gruss andre
Also so soll es nicht sein...
06.01.2004 22:19:59
Boris
Hi Andre,

...ich möchte gerne einzelne Funktionen vergleichen:
Z.B. SUMMENPRODUKT mit ZÄHLENWENN:

=SUMMENPRODUKT((A1:A65000>5)*(A1:A65000<10))

mit

=ZÄHLENWENN(A:A;">5")-ZÄHLENWENN(A:A;">=10)

Dass in diesem Fall ZÄHLENWENN schneller ist, ist mir klar - aber ich möchte doch gerne mal für jede Lösung wissen, wieviel Zeit sie genau benötigt - und das dann auch für zig andere Beispiele.

Hast du noch nen anderen Tipp?

Grüße Boris
Anzeige
Direkt im 1. Versuch mein Excel abgeschossen...
06.01.2004 22:24:52
Boris
Hi Andre,

...mal eben 4 Spalten markiert und die Formel mit Strg-Enter eingegeben - bye bye...;-)

Grüße Boris
AW: Berechnungsdauer einer Formel ermitteln
07.01.2004 16:45:22
Gerhard
Hallo Boris
Du als Spezialist kannst mit folgendem Makro vielleicht was anfangen ( umschreiben !!)
das hab ich aus der Recherche
viel Spaß
Gerhard

Problem: Wie kann ich die Dauer der Laufzeit eines Makros feststellen?
Lösung: Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.


Sub TimerTest()
Dim dteStart As Date, dteEnde As Date
Dim iCounter As Single
Application.ScreenUpdating = False
dteStart = Timer
For iCounter = 1 To 5000
If iCounter Mod 1000 = 0 Then
Application.StatusBar = _
"Besuche Zeile " & iCounter & "..."
End If
Cells(iCounter, 1).Select
Next iCounter
Range("A1").Select
Application.StatusBar = False
dteEnde = Timer
MsgBox "Bearbeitungszeit: " & Format _
(dteEnde - dteStart, "0.00") & " Sekunden..."
End Sub

Anzeige
AW: Berechnungsdauer einer Formel ermitteln
07.01.2004 17:44:14
andre
hallo gerhard,
die frage kommt doch nicht vom experten-boris.
dein makro habe ich mal etwas angepasst. es muss in ein tabellenmodul, wo die berechnung durchgeführt wird - man kann es aber auch für ein normales modul umstricken. wichtig ist nur, dass es von einer änderung ausgelöst wird. und wie ich schon schrieb, je nach formel empfiehlt sich eine größere wiederholung, um überhaupt etwas feststellen zu können.
hier wird glaube ein entsprechendes analyseprogramm angeboten:
http://www.decisionmodels.com/calcsecretsg.htm


Private Sub Worksheet_Change(ByVal Target As Range)
Dim dteStart As Date, dteEnde As Date
Dim iCounter As Single
Application.ScreenUpdating = False
dteStart = Timer
ActiveSheet.EnableCalculation = True 'Berechnung für dieses Blatt erlauben
Application.Calculate 'berechnen
dteEnde = Timer
MsgBox "Bearbeitungszeit: " & Format _
(dteEnde - dteStart, "0.00") & " Sekunden..."
ActiveSheet.EnableCalculation = False 'Berechnung für dieses Blatt unterdrücken
End Sub

beispiel:
daten: je ein Buchstabe in a1:k100 = 1000 zellen
formel: in l1:u100 = 1000 formeln
=ZÄHLENWENN($A$1:$K$100;"d")+ZÄHLENWENN($A$1:$K$100;"m")+ZÄHLENWENN($A$1:$K$100;"e")+ZÄHLENWENN($A$1:$K$100;"a")
ergibt bei mir mit einem 2600er celeron 0,25 sekunden
gruss andre
Anzeige
AW: Berechnungsdauer einer Formel ermitteln
07.01.2004 19:03:58
Boris
Hi Andre, hi Gerhard,

"die frage kommt doch nicht vom experten-boris."
In VBA bin ich auch kein Experte - aber der mit den {geschweiften Klammern} bin ich schon;-))

Der Code funktioniert schon wunderbar.
Das eingangs von mir erwähnte Beispiel mit ZÄHLENWENN versus SUMMENPRODUKT brachte doch schon mal deutliche Erkenntnisse:
ZÄHLENWENN: 0,05 Sek.
SUMMENPRODUKT: 0,42 Sek. - also ca. 8 mal langsamer - bei selbstverständlich gleichem Ergebnis.
Trage ich die gleichen Formeln 6 mal ein - so ergibt sich 0,28 Sek. zu 2,54 Sek. - also schon das 9-fache...

Jetzt stelle man sich einfach vor, man hat so ca. 1000 Formeln im Blatt - der Unterschied ist sicher immens...

Es ist halt eine Performancespielerei von mir - um ein genaues Gefühl dafür zu bekommen.

Jungs, ich danke Euch!

Grüße Boris

P.S.: Den Link schau ich mir noch in Ruhe an.
Anzeige
aber es war sicher ein ansatz oder ?
07.01.2004 21:33:55
Gerhard
Gruß Gerhard
Mehr als ein Ansatz...
07.01.2004 21:46:00
Boris
Hi Gerhard,

...hab ja geschrieben: Der Code funktioniert wunderbar:-)
Werde damit sicherlich noch weiter rumexperimentieren.

Also nochmal: Besten Dank! :-)

Grüße Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige