Excel精英培训网

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

[已解决]我想进行一组连续变量的统计,不知Excel能否实现,问题有点复习,请看附件

[复制链接]
发表于 2015-11-18 10:23 | 显示全部楼层 |阅读模式
本帖最后由 pqp888 于 2015-11-18 10:40 编辑

请高手指教,问题有点复习,请看附件。谢谢!
最佳答案
2015-11-18 17:08
估计用公式很难,vba都做了老半天。

范例.zip

7.14 KB, 下载次数: 18

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-11-18 17:08 | 显示全部楼层
  1. Sub tt()
  2.     cmax = Cells(3, ActiveSheet.Columns.Count).End(xlToLeft).Column    '最大列
  3.     arr = Range([c3], Cells(3, cmax))
  4.     ReDim brr(1 To 1, 1 To UBound(arr, 2))
  5.     For j = UBound(arr, 2) - 1 To 2 Step -1
  6.         x = arr(1, j)
  7.         n = n + 1
  8.         If x = 0 Or x = 1 Then        '只对对应单元格为0,1的起作用
  9.             If arr(1, j - 1) <> x And arr(1, j + 1) <> x Then     '010 或 101 或210.。。。,不能是 00*,*00,11*,*11
  10.                 s = s + 1
  11.                 brr(1, j) = s
  12.             End If
  13.             If n >= 5 Then
  14.                 If x = arr(1, j + 1) And x = arr(1, j + 2) And x = arr(1, j + 3) And x = arr(1, j + 4) Then      '连续5个相同
  15.                     s = IIf(s > 10, s - 10, 0)
  16.                     For k = j - 1 To 2 Step -1         '继续往前找到不相同的位置
  17.                         If arr(1, k) <> x Then Exit For
  18.                     Next
  19.                     brr(1, k + 1) = s
  20.                     j = k + 1
  21.                 End If
  22.             End If
  23.         End If
  24.     Next
  25.     [c4].Resize(1, UBound(arr, 2)) = brr
  26. End Sub
复制代码
回复

使用道具 举报

发表于 2015-11-18 17:08 | 显示全部楼层    本楼为最佳答案   
估计用公式很难,vba都做了老半天。

范例.rar

17.72 KB, 下载次数: 22

评分

参与人数 1 +1 收起 理由
pqp888 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-11-18 20:56 | 显示全部楼层
grf1973 发表于 2015-11-18 17:08
估计用公式很难,vba都做了老半天。

非常谢谢你,问题可解决,不过上面的代码我不懂用,可否劳烦你再帮我做一个连续4个以上就减5的,之前是连续5个以上减10,其它要求一样。
回复

使用道具 举报

发表于 2015-11-18 21:04 | 显示全部楼层
第14句去掉最后一个And就行
回复

使用道具 举报

 楼主| 发表于 2015-11-18 22:05 | 显示全部楼层
grf1973 发表于 2015-11-18 21:04
第14句去掉最后一个And就行

不好意思,我不懂哪些,还请您能帮我做好给我。谢谢!是了,是要连续4个相同就减5,不是减10哦。
还有,你给做好的表格好象是WPS的吧,用WPS打开用不了,用2010Excel打开可用,但图标上有个叹号,不知为何?
回复

使用道具 举报

发表于 2015-11-19 09:31 | 显示全部楼层
文件是xlsm类型的,是excel 2007以上版本后可用的。那个惊叹号就是此类文件的标志。
当然你也可以存为2003版以前的xls类型。
用Wps是不能运行里面的宏代码的。

范例.rar

18.03 KB, 下载次数: 13

回复

使用道具 举报

 楼主| 发表于 2015-11-19 13:12 | 显示全部楼层
grf1973 发表于 2015-11-19 09:31
文件是xlsm类型的,是excel 2007以上版本后可用的。那个惊叹号就是此类文件的标志。
当然你也可以存为2003 ...

谢谢老师,你令我见认到VBA的强大,VBA可真神奇。
现我知道VBA的神奇之处后,想让您帮我再造一个统计多行数组中各个数字的加权合计次数的表格,不知能否实现,谢谢!
请看附件。


数字加权统计范例.rar

8.74 KB, 下载次数: 4

回复

使用道具 举报

发表于 2015-11-19 13:45 | 显示全部楼层
请看附件。

数字加权统计范例.rar

21.13 KB, 下载次数: 18

回复

使用道具 举报

发表于 2015-11-19 13:45 | 显示全部楼层
通过点选单元格,你可以把结果输出到任意位置。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 19:12 , Processed in 0.581848 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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