在Excel列中计算(未知)string的出现次数

所以我有一个excel电子表格这样的:

| some data | PLA | | some data | MADW | | some data | IBFWE | | some data | RWIUBGER | | some data | WIUFBW | 

我想统计每个string的出现次数,并将其input到一个新的电子表格中。 有点像一个关键值存储,其中键为string,值为发生次数。 它需要能够运行多次(每当电子表格有一个新的条目)。 我将如何完成这样的事情? 我的电子表格太大(150k条目)手动。

我听说过Excel的macros或使用python脚本来导入表单,然后写出到同一个文件,或者使用谷歌工作表和从Excel本身调用函数的某种方式?

只需在其旁边添加一列,然后countIf整列的内容:

 =COUNTIF(L5:L12,L5) 

无论在L5中发生什么事情,都会在整个范围内发现多次。 在整个列表中做这个。

一旦你有了,你可以反弹到另一个工作表,并删除重复。

你可以设置一个ADO连接到你的工作表,然后运行一个查询,就像它是一个数据库。

 Dim query_results as variant Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") Dim your_file, strSQL as string your_file = "enter the full path of your excel file this is assuming is .xls" strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & your_file & ";" & _ "Extended Properties=""Excel 12.0;HDR=YES"";" cn.Open strCon strSQL = "Select value, count(whatever_you're_counting) from [ExcelSheetName$] group by value" Set rs = cn.Execute(strSQL) query_results = rs.GetRows rs.Close 'Code untested 

在这一点上,你应该能够遍历query_results并取出值/计数,并将它们放在另一个工作表中。