Betrifft: CountIf mit Datum(Jahr)
von: Marc
Geschrieben am: 28.09.2019 21:23:35
Guten Abend zusammen,
ich möchte aus einer Spalte, die unterschiedliche Datumswerte enthält mit CountIf zählen wie oft ein bestimmtes Jahr vorhanden ist mit folgendem Code:
Sub ExToEx() Dim Per As Date Per = Year(Date) Dim Num As Integer Dim PeriodCount As Long Dim adr As Range Set adr = ThisWorkbook.Worksheets("Dividenden").Range("A1:A50") For PeriodCount = 1 To 11 Num = WorksheetFunction.CountIf(Year(adr), Per) '''Typen unverträglich Debug.Print Num Per = Year(Date) - 1 Next PeriodCount End SubIch bekomme die Meldung Typen unverträglich und weiß nicht weshalb.
Betrifft: AW: CountIf mit Datum(Jahr)
von: Günther
Geschrieben am: 28.09.2019 22:38:21
Moin,
dan lass dir doch einmal den Variablentyp von "Per" nach der Zuweisung ausgeben oder alternativ werte genau so Year(Date) aus.
Gruß
Günther
Betrifft: AW: CountIf mit Datum(Jahr)
von: Marc
Geschrieben am: 28.09.2019 23:22:52
Hallo Günther,
die Variable hat den Typ Date. Ich habe nun bemerkt, dass ich besser dran bin wenn ich den Typ String zuweise denn sonst bekomme ich nicht das korrekte Jahr angezeigt. Allerdings habe ich die ganze Geschichte nun mit einer weiteren for each Schleife gelöst.
Vielen Dank und Gruß
Betrifft: AW: CountIf mit Datum(Jahr)
von: Daniel
Geschrieben am: 28.09.2019 23:24:54
HI
bei CountIf/ZählenWenn muss der erste Parameter ein Zellbereich bzw eine Range-Variable sein.
die Werte aus diesem Zellbereich müssen so verwendet werden, wie sie in den Zellen stehen, eine überarbeitung der werte innerhalb der CountIf-Funktion (so wie man es von SummenProdukt oder Matrixformeln kennt) ist nicht möglich.
wenn du die Anzahl innerhalb eines bestimmten Jahres ermitteln willst, musst du mit ZählenWenns/CountIfs arbeiten und alle werte Zählen, die größergleich dem 1.1 des jeweiligen Jahres und kleinergleich dem 31.12 des jeweiligen Jahres sind:
Num = Worksheetfunction.countifs(adr, ">=" & Clng(DateSerial(Year(Date), 1, 1)), adr, "<=" & Clng(DateSerial(Year(Date), 12, 31)))Gruß Daniel