Kriteriumspalte ist hier Datumspalte A. Kriterium ein Datum, der Spaltenversatz beträgt 1, da hier die Anzahl der verschiedenen Werte aus einer angrenzenden Spalte ermittelt werden sollen. Diese Spalte befindet sich rechts der Kriteriumspalte, daher die 1 als letztes Argument.
Das Ergebnis für den 01.01.2011 beträgt 3 Mitarbeiter. Paul wird nur einmal gezählt.
Es soll die Anzahl der unterschiedlichen Einträge in Spalte H in Abhängigkeit des Kriteriums in Spalte K ermittelt werden.
Kriteriumspalte ist hier K, das Kriterium z.B. A ist fest in die Formel eingegeben. Der Spaltenversatz bis Spalte H beträgt 3, und da diese Spalte links von Spalte K liegt, wurde die Null als letztes Argument gewählt.
Damit die Formel genutzt werden kann, muss der unten genannte Code in ein "Allgemeines Modul". ( Siehe auch
UDF - Funktionen
-> * Allgemeines Modul - Kurzanleitung * )
Public Function Verschiedene(Kriterium_Spalte As Range, _
Kriterium As Variant, _
Anzahl_Spalten As Integer, _
RechtsLinks As Boolean) As Long
'############################################################
'Funktion zählt die unterschiedlichen Einträge einer Spalte
'in Abhängigkeit eines Kriteriums einer Nebenspalte
'Autor: Jürgen Hennekes
'############################################################
Application.Volatile
Dim objDic As Object
Dim Zelle As Range
Set objDic = CreateObject("Scripting.Dictionary")
If RechtsLinks = True Then
For Each Zelle In Kriterium_Spalte
If Zelle.Value = Kriterium Then
objDic(Zelle.Offset(0, Anzahl_Spalten).Value) = 1
End If
Next
Else
For Each Zelle In Kriterium_Spalte
If Zelle.Value = Kriterium Then
objDic(Zelle.Offset(0, Anzahl_Spalten * -1).Value) = 1
End If
Next
End If
Verschiedene = objDic.Count
End Function