我有一个excel集,我需要根据名称计算条目。它们都在同一列中,每个条目应该有4个。我需要一个公式来计算具有相同条目的单元格数量,这些条目不以#34;零售"或"商业"并且只返回没有4的单元格中的名称。例如,如果我的数据看起来如此:
NAME
Retail - John
Retail - Sue
Kara
Kara
Joe
Joe
Joe
Joe
Commercial
Sarah
我想要一个会搜索此列的公式,并且只返回" Kara - 2"和#34;莎拉 - 1"。 "零售"和"商业"从一开始就被排除在外,因为" Joe" = 4我并不关心这一点。有没有什么方法可以让我的搜索列,让它返回第一个计数,以满足C1的标准,下一个到C2,依此类推,直到我有一列只有不合规的条目?我喜欢下面的输出:
NAME COUNT
Kara 2
Sarah 1
感谢您的关注,我非常感谢您提供的任何帮助和建议!
答案 0 :(得分:1)
如果您的数据位于A列,则结果表将位于B列和B列中。运行此宏后C:
Sub MAIN()
Dim A As Range, wf As WorksheetFunction
Dim s1 As String, s2 As String
Dim col As Collection
Set A = Intersect(Range("A:A"), ActiveSheet.UsedRange)
Set wf = Application.WorksheetFunction
Set col = MakeColl(A)
s1 = "Retail"
s2 = "Commercial"
K = 1
For i = 1 To col.Count
v = col.Item(i)
If InStr(v, s1) = 0 And InStr(v, s2) = 0 Then
n = wf.CountIf(A, v)
If n <> 4 Then
Cells(K, "B").Value = v
Cells(K, "C").Value = n
K = K + 1
End If
End If
Next i
End Sub
Public Function MakeColl(rng As Range) As Collection
Set MakeColl = New Collection
Dim r As Range
On Error Resume Next
For Each r In rng
v = r.Value
If v <> "" Then
MakeColl.Add v, CStr(v)
End If
Next r
MsgBox MakeColl.Count
End Function