708 Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.3k Punkte)
Hallo,

ich möchte in einer Spalte die Anzahl der Einträge "31.12.2015" zählen.
Seltsamerweise liefert mir der Countif-Befehl ein falsches Ergebnis:
lngAnzL = Application.CountIf(Range(Cells(3, 27), Cells(lastrow, 27)), "31.12.2015")


Wenn ich das gleiche mit einer Schleife zähle, dann stimmt das Ergebnis:
For i = 3 To lastrow
If Cells(i, 27) = "31.12.2015" Then lngAnzL = lngAnzL + 1
Next


Weiß jemand woran das liegen könnte? Gruß

2 Antworten

0 Punkte
Beantwortet von
Hallo Andreas,

die (hier nicht angezeigte aber automatisch hinterlegte) .Value Eigenschaft des Range-Objekts deiner Schleife erkennt ob es sich beim Auslesen aus der Zelle um eine Zahl, Text oder ein Datum handelt. Daher funktioniert deine Schleife.
So schlau ist die CountIf Funktion leider nicht. Die sucht stur nach Text welchen Sie nicht findet, da du ja ein rechnerisches Datum (also ein Zahlenformat) hinterlegt hast.
Ändere deine Funktion wie folgt

lngAnzL = Application.CountIf(Range(Cells(3, 27), Cells(lastrow, 27)), CDate("31.12.2015"))
Gruß Mr. K.
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo Mr.K,
Danke für den guten Tipp - jetzt funktionierst !
VG
...