Excel精英培训网

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

[已解决]统计个位数字的个数

[复制链接]
发表于 2013-12-16 01:10 | 显示全部楼层 |阅读模式
本帖最后由 ymq123 于 2013-12-16 10:39 编辑

请编写代码:
按先后顺序,分别计算各行数字个位数字相同的个数,结果输出在以M1为顶点的单元格区域内.
例如:表格第一行,个位数字是3的2个、个位数字是4的2、个位数字是9的1个、个位数字是0的1个、个数字是1的1个.
输出顺序为:2  2  1  1  1
其它类推。
谢谢
最佳答案
2013-12-16 02:53
请楼主测试。

统计个位数字的个数.rar

22.89 KB, 下载次数: 8

发表于 2013-12-16 02:53 | 显示全部楼层    本楼为最佳答案   
请楼主测试。

统计个位数字的个数.rar

11.13 KB, 下载次数: 9

回复

使用道具 举报

发表于 2013-12-16 07:22 | 显示全部楼层
回复

使用道具 举报

发表于 2013-12-16 09:15 | 显示全部楼层
借用2楼大师的代码,数据多时,可以提升下速度:
  1. Sub test1()
  2.     Dim arr, brr(), i%, j%, d, temp
  3.     arr = Range("a1").CurrentRegion
  4.     ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
  5.     ReDim re(1 To UBound(arr), 1 To UBound(arr, 2))
  6.     Set d = CreateObject("scripting.dictionary")
  7.     Range("M:Z").ClearContents
  8.     For i = 1 To UBound(arr)
  9.         For j = 1 To UBound(arr, 2)
  10.             If arr(i, j) <> "" Then
  11.                 d(Right(arr(i, j), 1)) = d(Right(arr(i, j), 1)) + 1
  12.             End If
  13.         Next
  14.         temp = d.items
  15.         d.RemoveAll
  16.         For j = 0 To UBound(temp)
  17.             re(i, j + 1) = temp(j)
  18.         Next j
  19.     Next
  20.     [m1].Resize(UBound(re), UBound(re, 2)) = re
  21. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
ymq123 + 3

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 05:09 , Processed in 0.380006 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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