1

我有一个 excel 集,我需要根据名称计算条目。它们都在同一列中,每个条目应该有 4 个。我需要一个公式来计算具有相同条目的单元格的数量,这些单元格不以“零售”或“商业”开头,并且只返回单元格中没有 4 个的名称。例如,如果我的数据看起来如此:

    NAME
Retail - John
Retail - Sue
Kara
Kara
Joe
Joe
Joe
Joe
Commercial
Sarah

我想要一个公式来搜索此列,并且只返回“Kara - 2”和“Sarah - 1”。“零售”和“商业”从一开始就被排除在外,因为“乔”=4,我不关心这一点。有什么方法可以让我搜索该列,让它返回第一个满足该条件的计数到 C1,下一个到 C2,依此类推,直到我有一列只包含不合规的条目?我喜欢下面的输出:

NAME        COUNT
Kara          2
Sarah         1  

感谢您的关注,我非常感谢您提供的任何帮助和建议!

4

1 回答 1

1

如果您的数据位于 A 列中,则运行此宏后,结果表将位于 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
于 2013-11-12T20:14:31.290 回答