AW: Zählenwenn über mehere Sheets
16.03.2008 19:45:38
Daniel
Hi
ich hätte hier eine VBA-Lösung (als benutzerdefinerte Funktion)
1. Parameter: der zu untersuchende Zellbereich im ersten Tabellenblatt
2. Parameter: der zu untersuchende Zellbereich im letztten Tabellenblatt
3. Parameter: der Suchbegriff
Public Function ZählenWennÜberTabellenblätter(Bereich As Range, _
Bereich2 As Range, _
Suchbegriff As String) As Long
Dim i As Long, von As Long, bis As Long
Dim Erg As Long
Dim Addr As String
Addr = Bereich1.Address
von = WorksheetFunction.Min(Bereich1.Parent.Index, Bereich2.Parent.Index)
bis = WorksheetFunction.Max(Bereich1.Parent.Index, Bereich2.Parent.Index)
For i = von To bis
Erg = Erg + WorksheetFunction.CountIf(Sheets(i).Range(Addr), Suchbegriff)
Next
ZählenWennÜberTabellenblätter = Erg
End Function
die Funktion in Excel würde dann so aussehen:
=ZählenWennÜberTabellenblätter(Januar!F11:AJ11;Dezember!F11:AJ11;"T")
gezählt werden alle Ts im angebenen Zellbereich in den Tabellenblättern, die zwischen Blatt "Januar" und Blatt "Dezember" liegen.
eine Einschränkung dabei ist allerdings, daß sich die Funktion nicht aktualisiert, wenn in den Blättern "Februar" bis "November" ein Wert eingegeben wird, da Excel bei diesen Blättern ja nicht erkennen kann, daß diese Funktion davon betroffen ist.
auch das Einfügen von Application.Volatile hilft nicht viel, da es nur auf dem gleichen Tabellenblatt funktioniert
Gruß, Daniel