如何计算单元格内容的出现?

时间:2018-08-06 20:06:08

标签: excel excel-vba

我的单元格参差不齐,内容不断重复。我需要知道每种独特内容出现的频率。我如何到达需要的地方?

enter image description here

2 个答案:

答案 0 :(得分:2)

为什么不是一个简单的公式?

  

假设您的范围是C1:H3,第一个   检查值位于C6

=COUNTIF($C$1:$H$3, C$6)

将产生预期的结果

答案 1 :(得分:2)

尽管接受的答案肯定会产生预期的结果,只要知道要检查的值并将其包含在第6行中,我认为就需要一个宏,因为这些值是未知的。

我会遍历整个范围,并且如建议的那样,使用脚本字典来跟踪唯一值。您还可以使用字典来保留每个值的每个实例的计数。如果使用字典,我认为不需要Countif()。

Dim wc As Object
Set wc = CreateObject("Scripting.Dictionary")
For Each cell In Selection
 If cell.Value <> "" Then
   wc(cell.Value) = wc(cell.Value) + 1
 End If
Next

之所以可行,是因为VBA将添加一个密钥并将其值初始化为0(如果还不存在)。然后,您可以遍历字典,在一行中吐出键,在另一行吐出值。

这与预期结果不同的唯一方法是不会对键进行排序,但是按键对字典进行排序是Covered elsewhere