比较单元格值并使用公式或函数在Excel中打印计数?

时间:2013-11-28 13:10:20

标签: excel vba excel-vba excel-formula

我需要一个能够满足下面提到的需求的公式或功能。我有一个大约11000行的Excel数据,数据看起来有点像A列: 现在在B列中我希望打印结果如下所述:字面意思是它应该计算A列中的值并将其打印在B列中,我不需要重复计数:

Column A  Column B
PC-101      1
PC-101      1
PC-102      2
PC-102      2
PC-103      3
PC-104      4
PC-106      5
PC-107      6
PC-104      4
PC-106      5
PC-106      5

我尝试使用“count”系列公式,但结果为null。 即使我写下如下给出的宏(我从stackoverflow得到),但即使是打印重复计数:

Sub CountOccurence()
' Reference: Microsoft Scripting Runtime

Application.ScreenUpdating = False

Set oDict = New Dictionary
Dim wS As Worksheet
Dim r As Integer, rLast As Integer

    Set wS = Sheet1
    rLast = wS.Cells(1, 1).CurrentRegion.Rows.Count
    For r = 3 To rLast Step 1
        If Not (oDict.Exists(wS.Cells(r, 1).Value)) Then
            oDict.Add wS.Cells(r, 1).Value, 1
        Else
            oDict.Item(wS.Cells(r, 1).Value) = oDict.Item(wS.Cells(r, 1).Value) + 1
        End If
        wS.Cells(r, 2).Value = oDict.Item(wS.Cells(r, 1).Value)
    Next r
Set oDict = Nothing
Application.ScreenUpdating = True
End Sub

任何人都可以帮我这个吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

  

我尝试使用“count”系列公式,但结果为null。

一个简单的Excel公式可以做到这一点。

1放入单元格B1,然后将此公式放入单元格B2并将其拉下来。

=IF(COUNTIF($A$1:$A2,A2)>1,VLOOKUP(A2,A:B,2,0),B1+1)

enter image description here

答案 1 :(得分:0)

假设您对a列中的数据进行了排序,您只需将1放在B3中的B2公式中并将其复制下来:

=IF(A2<>A3,B2+1,B2)

: - )