计算在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 <行号>
不是一个很好的解释,但它的作用非常像“如果等于”