我有一个包含多组数据的Excel列。我想在其中查找所有不同记录集的计数,然后将其结果打印在同一Excel中的表单2的单元格中。
客户端
* Burberry Group p
* CA Technologies
* CA Technologies
* CA Technologies
* CA Technologies
* CA Technologies
* CA Technologies
* CA Technologies
CSM Bakery Solut
Deckers Outdoor
美泰公司(Glo
美泰公司(Glo
美泰公司(Glo
美泰公司(Glo
美泰公司(Glo
美泰公司(Glo
美泰公司(Glo
Riverbed Technol
Riverbed Technol
Riverbed Technol
Riverbed Technol
Riverbed Technol
Riverbed Technol
Smurfit Kappa Gr
Smurfit Kappa Gr
Smurfit Kappa Gr
Smurfit Kappa Gr
Thermo Fisher Sc
Thermo Fisher Sc
Thermo Fisher Sc
Thermo Fisher Sc
Thermo Fisher Sc
Thermo Fisher Sc
Thermo Fisher Sc
对于上述数据。 结果应为8,因为有8个客户名称。但是在专栏中重复了这些。
计数结果应打印在第2页单元格中。
答案 0 :(得分:1)
以下数组公式将计算Sheet1
列A中的唯一值,然后将结果放在A1
Sheet2
上:
Dim s As String
s = "Sheet1!" & Sheet1.Range("A1", Sheet1.Range("A1").End(xlDown)).Address
Sheet2.Range("A1") = Evaluate("=SUM(1/COUNTIF(" & s & "," & s & "))")
答案 1 :(得分:0)
您可以使用此VBA
代码,假设您的数据位于Sheet1!A2:A100
且输出位于Sheet2!A1
Dim row As Integer, start_row As Integer, end_row As Integer, v As String, concat As String, count_distinct As Integer
start_row=2
end_row=100
concat="~"
For row = start_row to end_row
v=Sheet1.Range("A" & row)
If InStr(concat,v)<=0 Then concat=concat & "~" & v
Next row
count_distinct=UBound(Split(concat,"~"))
Sheet2.Range("A1")=count_distinct
计数在count_distinct
,值在Split(concat,"~")
但是,您不需要VBA
来过滤重复项,
只需阅读&#34;删除重复值&#34; Filter for unique values with excel中的部分,它是内置功能