计算在Excel中两列之间find数字的次数

我有两列(A和B),我想知道列B中的数字在列A中find了多less次。它们不必位于同一行中,只是在同一列内。

像这样: http : //i.imgur.com/AsgZoab.jpg

谢谢!

您没有指定是否需要公式或VBA /macros解决scheme…

公式解决scheme(由@dwarduk发布)具有扩展解释

=COUNTIF($A:$A, $B1) 
  • COUNTIF(...) – 接受两个参数,第一个是要查找的范围,第二个是要查找的值。 它返回在该范围内find的值的次数。 请注意,第二个参数不一定是对单元格的引用。
  • $A:$A – 表示列A中的每个单元格(与$A$1:$A$65535相同$A$1:$A$65535
  • $B1 – 表示B列中的第一个单元格。 请注意,因为1不是以美元符号( $ )为前缀,所以如果通过另一行中的公式,它将适当地递增或递减。 所以,你会想确保你先在C1中通过这个公式,然后填充它下面的单元格。

附加说明: COUNTIF(...)根据单元格的实际值进行操作,但不对单元格的格式化值进行操作。 因此,如果在A列的单元格中有826.2个,但数字格式设置为全部小数点的位置,则B列中的值不会被计算为826 。 尽pipe肉眼看起来是一样的。

替代scheme选项

如果B列中的值是硬编码的。 只需将B列中的值replace为COUNTIF(...)公式,并将相应的数字作为第二个参数。 这是一个B1的例子。

 =COUNTIF($A:$A,444) 

VBA /macros解决scheme

这将填充列C中的单元格,列B中的相应值在列A中find的次数

 Public Sub CountA_FillC() Dim RowA As Long, RowB As Long Dim UsedRange As Range: Set UsedRange = ActiveSheet.UsedRange For RowB = 1 To UsedRange.Rows.Count Dim Count As Long: Count = 0 For RowA = 1 To UsedRange.Rows.Count If UsedRange(RowA, "A").Value = UsedRange(RowB, "B").Value Then Count = Count + 1 End If Next RowA UsedRange(RowB, "C").Value = Count Next RowB End Sub 

=COUNTIF($A:$A,$B1) ,其中$ B1实际上表示$ B <行号>

不是一个很好的解释,但它的作用非常像“如果等于”