我有两列,一列有客户ID号,另一列有计划数。客户ID中包含字母和数字,而计划的计数是非零整数。
我首先需要一个函数:指定一系列与特定计划数相对应的客户ID(例如,所有客户ID的相应计划数为4)
然后是第二个:计算该计划数的唯一客户ID数。
例如,对于计划数量等于4的这些ID:
06U0547
06U0547
06U0547
06U5166
06U5166
06U5166
06U4990
06U4990
06U4990
06U4777
06U4777
匹配列
4
4
4
4
4
4
4
4
4
5
5
我希望Excel说“好吧,让我们只看这9个客户ID,计划数量等于4,然后计算唯一数字。这将是3个唯一数字。”所以函数应该返回“3”。这适用于任何n,因此对于n = 5,该函数应返回“1”,因为计划数为5时只有1个唯一的客户ID。
我该怎么写?我在这里查找了独特的值函数,但它们都不适合我,我找不到任何选择范围的功能。我只是一个实习生我对VBA一无所知。
非常感谢任何帮助,非常感谢你!
答案 0 :(得分:0)
试试这个使用NULL
事件的vba代码
worksheet_change
如果您的数据位于A列和B列,请在单元格Private Sub worksheet_change(ByVal target As Range)
If target.Address = "$C$1" And Range("C1").Value <> "" And IsNumeric(Range("C1").Value) Then
Range("D1:E20").ClearContents
Dim i As Long, j As Long, k As Long
k = 1
i = Range("C1").Value
For j = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Range("B" & j).Value = i Then
Range("D" & k).Value = Range("A" & j).Value2
Range("E" & k).Value = Range("B" & j).Value2
k = k + 1
End If
Next j
Range("D1:E" & j).RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
Range("F1") = Application.WorksheetFunction.CountA(Columns(4))
End If
End Sub
中输入4或5。宏检测到单元格C1
的更改并删除列D和E中数据范围的重复项。然后它会告诉您单元格C1
中的唯一计数。