/ / Anzahl der eindeutigen Zellen in Excel zählen, die keine bestimmten Zeichen enthalten - Excel, vba

Wie man die Zahl der eindeutigen Zellen in Excel zählt, die bestimmte Charaktere nicht enthalten - übertreffen Sie, vba

Ich versuche, die Anzahl der eindeutigen Zellen in Spalte C zu zählen, die kein "#" oder "-" enthalten.

Ich habe eine Spalte mit Zellen, die Namen enthalten. Einige dieser Namen werden wiederholt und einige haben Zeichen wie "-" und / oder "#" innerhalb von - Ich versuche, diese Zellen von der Zählung auszuschließen.

Ich habe 2 Formeln, von denen jede die Hälfte von dem macht, was ich brauche, aber ich muss die beiden Formeln kombinieren, um die richtige Antwort zu erhalten:

Diese Formel zählt die Anzahl eindeutiger Zellen (und kümmert sich um Leerzeichen): = SUM (IF (COUNTIF (C4: C3689, C4: C3689) = 0, "", 1 / COUNTIF (C4: C3689, C4: C3689) )

Diese Formel zählt die Anzahl der Zellen, die kein "#" oder "-" haben: = SUMPRODUCT (N (LEN (SUBSTITUTE (C4: C3689, "-", ""), "#", "") )) = LEN (C4: C3689)))

Wissen Sie, wie Sie die 2 Formeln kombinieren können? Wenn Sie wissen, wie Sie die beiden Formeln auf unterschiedliche Art und Weise kombinieren können (benutzerdefinierte Funktion oder VBA), wäre das ebenfalls großartig.

Vielen Dank.

Antworten:

2 für die Antwort № 1

Diese Formel zählt die Anzahl der verschiedenen Einträge im angegebenen Bereich, ausgenommen die Einträge # oder -

=SUMPRODUCT((ISERR(SEARCH("#",C4:C3689))*ISERR(SEARCH("-",C4:C3689))*(C4:C3689<>""))/COUNTIF(C4:C3689,C4:C3689&""))


0 für die Antwort № 2

Verwenden Sie eine Funktion wie diese:

=GetUniqueCount("C4:C3689")

Fügen Sie den Funktionscode hinzu:

Function GetUniqueCount(rng As Range) As Variant
"Dim rng as Range
"Set rng = Range("C4:C3869") "Modify as needed

Dim r as Range
Dim uniqueCount as Long
Dim dict as Object
Set dict = CreateObject("Scripting.Dictionary")
For each r in rng.Cells
If Not dict.Exists(r.Value) Then
If Instr(1, r.Value, "#") = 0 Then
If Instr(1, r.Value, "-") = 0 Then
dict(r) = ""
uniqueCount = uniqueCount + 1
End If
End If
End If
Next

GetUniqueCount = uniqueCount
Set dict = Nothing
End Function