统计行中不同的单词,并粘贴表2中的计数

我有一个包含多组数据的Excel列。 我想find计数中的所有不同组的logging,然后将其结果打印在工作表2的单元格在同一个Excel中。

客户

*巴宝莉集团

* CA Technologies

* CA Technologies

* CA Technologies

* CA Technologies

* CA Technologies

* CA Technologies

* CA Technologies

CSM面包店Solut

户外的Deckers

美泰公司(Glo

美泰公司(Glo

美泰公司(Glo

美泰公司(Glo

美泰公司(Glo

美泰公司(Glo

美泰公司(Glo

河床技术

河床技术

河床技术

河床技术

河床技术

河床技术

Smurfit Kappa Gr

Smurfit Kappa Gr

Smurfit Kappa Gr

Smurfit Kappa Gr

赛默飞世尔科技

赛默飞世尔科技

赛默飞世尔科技

赛默飞世尔科技

赛默飞世尔科技

赛默飞世尔科技

赛默飞世尔科技

对于上面的数据。 结果应该是8,因为有8个客户名称。 但那些在列中重复。

计数的结果应打印在表格2单元格中。

下面的数组公式将计算Sheet1 A中的唯一值,然后将结果放在Sheet2 A1

 Dim s As String s = "Sheet1!" & Sheet1.Range("A1", Sheet1.Range("A1").End(xlDown)).Address Sheet2.Range("A1") = Evaluate("=SUM(1/COUNTIF(" & s & "," & s & "))") 

假设您的数据在Sheet1!A2:A100 ,并且输出在Sheet2!A1 ,则可以使用此VBA代码

 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来过滤重复项,

只需阅读filter中的“删除重复值”部分以获取具有excel的唯一值 ,这是一个内置function