Próbuję policzyć liczbę unikalnych komórek w kolumnie C, w której nie ma "#" lub "-".
Mam kolumnę komórek, które zawierają nazwy. Niektóre z tych nazw są powtarzane, a niektóre mają takie znaki jak "-" i / lub "#" wewnątrz - próbuję wykluczyć, że te komórki nie są liczone.
Mam 2 formuły, z których każda zajmuje połowę tego, czego potrzebuję, ale muszę połączyć 2 formuły, aby uzyskać właściwą odpowiedź:
Ta formuła zlicza liczbę unikalnych komórek (i dba o puste pola): = SUMA (JEŻELI (LICZ.IF (C4: C3689, C4: C3689) = 0, "", 1 / COUNTIF (C4: C3689, C4: C3689)) )
Ta formuła zlicza liczbę komórek, które nie mają "#" lub "-": = SUMPRODUCT (N (LEN (SUBSTITUTE (SUBSTITUTE (C4: C3689, "-", ""), "#", "" )) = LEN (C4: C3689)))
Czy wiesz, jak połączyć 2 formuły? Jeśli wiesz, jak połączyć te dwie formuły w inny sposób (funkcja niestandardowa lub VBA), to też byłoby wspaniale.
Dzięki.
Odpowiedzi:
2 dla odpowiedzi № 1Ta formuła zlicza liczbę różnych wpisów w określonym zakresie, z wyłączeniem tych, które zawierają #
lub -
=SUMPRODUCT((ISERR(SEARCH("#",C4:C3689))*ISERR(SEARCH("-",C4:C3689))*(C4:C3689<>""))/COUNTIF(C4:C3689,C4:C3689&""))
0 dla odpowiedzi nr 2
Użyj funkcji podobnej do tej:
=GetUniqueCount("C4:C3689")
Dodaj kod funkcji:
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