Sub fdsafsaf()
Dim i As Long, j As Long, k As Long
Dim rng As Range
Dim arr
Dim arr1()
i = [a65536].End(3).Row '07版本改为[a1000000].End(3).Row
j = [b65536].End(3).Row '07版本改为[b1000000].End(3).Row
ReDim arr1(1 To j, 1 To 1)
Set rng = Range("a1:a" & i)
arr = Range("b1:b" & j)
For k = 1 To j
arr1(k, 1) = WorksheetFunction.CountIf(rng, arr(k, 1))
Next
Range("c1").Resize(j, 1) = arr1
End Sub
我试了几组数据,
4代表4000个
4、4表示两边都最4000个
这代码运行40万个数据,时间上要5个多小时
c1=IF(A1=B1,COUNTIF(A:A,A1),0)
选中c1,在左上角的名称框里输入c1:c400000,后边这个数字根据你的实际情况输入,最后那个是多少就输入多少,然后按回车买这时候c列的40万的单元格就选中了(如果真有这么多的话),保持选中状态,鼠标点一下上边编辑栏,把公式最后变得)删掉再输入,完了时候按下ctrl+回车,刚刚选中的单元格就自动填充上公式了。
我觉得吧,用数据透视表比较靠谱一些
C1输入公式并下拉。
=if(A1=B1,countif(a:A,a1),0)
C1 =COUNTIF(A:A,B1)
然后双击 C1 单元格右下角的 小黑十字 向下复制……