Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2446|回复: 4

[已解决]统计A列内某个数字出现的次数

[复制链接]
发表于 2017-8-17 15:48 | 显示全部楼层 |阅读模式
本帖最后由 lovelfg 于 2017-8-17 16:48 编辑

如附件所示,A列内有这样的一系列数字
Q3
101
102
101/102
103
101/102/103
104
109/1011/1012
106
101/102/103
106
1011/1012
102/108
101/107
107
106
106
105/1011/1012
107
现在B列内列出所有元素,要统计出每种数字出现的次数,附件内有我尝试写的代码,但可惜完全是错的,求教高人指点一下
Sub test()
Dim i, j, k
Dim arr, n
Do While Range("B" & j) <> ""
  For i = 2 To Range("A65535").End(xlUp).Row
   arr = Split(Range("A" & i))
    For Each n In arr
     If Val(n) = Range("B" & j) Then
      k = k + 1
     End If
    Next
   Range("C" & j) = k
   j = j + 1
   Next
Loop
End Sub

最佳答案
2017-8-17 16:30
  1. Sub tt()
  2. Dim i%, arr, brr, d, n%
  3. arr = Range("a1").CurrentRegion
  4. Set d = CreateObject("scripting.dictionary") '创建字典
  5. For i = 2 To UBound(arr)
  6.     brr = Split(arr(i, 1), "/") '数据放到brr
  7.     For n = 0 To UBound(brr)
  8.         If Not d.Exists(brr(n)) Then '用字典判断是否重复
  9.             d(brr(n)) = Array(brr(n), 1)
  10.         Else
  11.             d(brr(n)) = Array(brr(n), d(brr(n))(1) + 1)
  12.         End If
  13. Next n, i
  14. Range("b2").Resize(d.Count, 2) = Application.Transpose(Application.Transpose(d.items))
  15. End Sub
复制代码

test.rar

14.04 KB, 下载次数: 13

附件

发表于 2017-8-17 16:30 | 显示全部楼层    本楼为最佳答案   
  1. Sub tt()
  2. Dim i%, arr, brr, d, n%
  3. arr = Range("a1").CurrentRegion
  4. Set d = CreateObject("scripting.dictionary") '创建字典
  5. For i = 2 To UBound(arr)
  6.     brr = Split(arr(i, 1), "/") '数据放到brr
  7.     For n = 0 To UBound(brr)
  8.         If Not d.Exists(brr(n)) Then '用字典判断是否重复
  9.             d(brr(n)) = Array(brr(n), 1)
  10.         Else
  11.             d(brr(n)) = Array(brr(n), d(brr(n))(1) + 1)
  12.         End If
  13. Next n, i
  14. Range("b2").Resize(d.Count, 2) = Application.Transpose(Application.Transpose(d.items))
  15. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-8-17 16:48 | 显示全部楼层

目前字典我用的不好,我会好好参考您的代码来学习,非常感谢!
回复

使用道具 举报

发表于 2017-8-17 17:40 | 显示全部楼层
你看行不行

test1.zip

18.83 KB, 下载次数: 10

回复

使用道具 举报

 楼主| 发表于 2017-8-17 17:57 | 显示全部楼层

可以的!万分感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 01:17 , Processed in 0.462931 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表