VBA统计000-999的次数

Excel的某一行有多个三位数(每个三位数占一个单元格),现在编写一个自定义函数,统计每个三位数出现的次数,未出现的三位数用0次代替,比如237有3次,732有4次,70... Excel的某一行有多个三位数(每个三位数占一个单元格),现在编写一个自定义函数,统计每个三位数出现的次数,未出现的三位数用0次代替,比如237有3次,732有4次,702有4次,890有1次,按次数从高到低,格式是前面是数字,小括号内是次数,用逗号隔开,上面的结果就是732(4),702(4),237(3),890(1),000(0),001(0),(剩余还有995个数就不列举了,数字按升序排列),本人不会VBA,参照别人以前写的自定义函数,请你也做成自定义函数形式,如Function CiShu(r,c)
万分感谢.
展开
 我来答
帐号已注销
2012-08-13 · TA获得超过398个赞
知道小有建树答主
回答量:514
采纳率:0%
帮助的人:190万
展开全部

代码文本已经私信发给你了,好用的话就采纳这个号吧.

百度不知道怎么搞的,写个VBA都要审核.

追问
我使用cells(3,1)=CiShu(A1:A10) 结果在A1与A10之间的冒号处提示出错,提示的错误是Expected list separator or
又在C1单元格输入=CiShu(A2:B10),不知道怎么运行,这个函数到低怎么调用?
追答
首先这些代码要放在模块里
然后 回到工作表,假设你的所有三位数在A2:B10
在c1输入=CiShu(A2:B10)就会出来结果了
上边图片你可以点开看大图。
feiyun
2012-08-13 · 知道合伙人教育行家
feiyun
知道合伙人教育行家
采纳数:2687 获赞数:7903
从事培训工作12年 中级经济师

向TA提问 私信TA
展开全部
连0个的都要显示么?那岂不是一个单元格至少需要输出7000个字符.
追问
不显示0次也可以
追答

其实显示0也可以,不过数据太长,单元格虽然可以显示3w多个字符,但是恐怕要好几个屏幕

Function CiShu(r As Range)

Dim n(999)

For i = 0 To 999

n(i) = Application.WorksheetFunction.CountIf(r, i)

Next i

For m = 999 To 0 Step -1

For i = 0 To 999

If n(i) = m Then CiShu = CiShu & Format(i, "000") & "(" & n(i) & "),"

Next i

Next m

CiShu = Left(CiShu, Len(CiShu) - 1)

End Function


 

记得自定义函数的代码要放在模块里.

用法是:

=cishu(范围)

如图

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式