Zählenwenn Problem
#11
Zitat:also würde es helfen, wenn man den Bereich eingrenzt?

Unbedingt!
Und noch besser (weil performanter) sind halt die genannten Standardfunktionen:

=ZÄHLENWENNS(P:P;">=2";P:P;"<=3")

oder mit etwas mehr Verwirrung Wink

=SUMME(ZÄHLENWENN(P:P;{">=2".">3"})*{1.-1})
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • BoskoBiati
Antworten Top
#12
Hallo Boris,

danke für die Aufklärung.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#13
Wer mag, kann ja auch den Beweis führen:

Fill_It: 
A1: ZUFALLSMATRIX(20;;0;4) 
C1: SUMME((A:A>=2)*(A:A<=3))
Laufzeiten auf meinem alten Rechner:
Code:
Formeln dauern: 0,15234375
Durchlauf 1 dauert 0,078125
Durchlauf 2 dauert 0,06640625
Durchlauf 3 dauert 0,05859375
Durchlauf 4 dauert 0,06640625
Durchlauf 5 dauert 0,05859375
Durchlauf 6 dauert 0,06640625
Durchlauf 7 dauert 0,05859375
Durchlauf 8 dauert 0,06640625
Durchlauf 9 dauert 0,05859375

Fill_It_2: 
A1: ZUFALLSMATRIX(20;;0;4) 
C1: SUMME((A1:A20>=2)*(A1:A20<=3))
Laufzeiten nicht messbar:
Code:
Formeln dauern: 0
Durchlauf 1 dauert 0
Durchlauf 2 dauert 0
Durchlauf 3 dauert 0
Durchlauf 4 dauert 0
Durchlauf 5 dauert 0
Durchlauf 6 dauert 0
Durchlauf 7 dauert 0
Durchlauf 8 dauert 0
Durchlauf 9 dauert 0

Verwendeter Code (Makro Quicky starten)
Modul Modul1
Option Explicit 
 
Sub Fill_It() 
Range("A1").Formula2 = "=RANDARRAY(20,,0,4)" 
Range("C1").Formula2 = "=SUM((A:A>=2)*(A:A<=3))" 
End Sub 
 
Sub Fill_It_2() 
Range("A1").Formula2 = "=RANDARRAY(20,,0,4)" 
Range("C1").Formula2 = "=SUM((A1:A20>=2)*(A1:A20<=3))" 
End Sub 
 
Sub Quicky() 
Dim Start#, i& 
Application.ScreenUpdating = False 
Cells.Clear 
Start = Timer 
Call Fill_It 
Debug.Print "Formeln dauern: " & Timer - Start 
For i = 1 To 9 
  Start = Timer 
  Calculate 
  Debug.Print "Durchlauf " & i & " dauert " & Timer - Start 
Next 
Cells.Clear 
Start = Timer 
Call Fill_It_2 
Debug.Print "Formeln dauern: " & Timer - Start 
For i = 1 To 9 
  Start = Timer 
  Calculate 
  Debug.Print "Durchlauf " & i & " dauert " & Timer - Start 
Next 
End Sub 
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#14
Zitat:kann ja auch den Beweis führen:

Fein Smile
Antworten Top


Gehe zu:


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