百科知识

EXCEL数据统计问题请看附件,若对问题有疑问,我会尽快在问题补

2007-09-01 19:55:36b***
请看附件,若对问题有疑问,我会尽快在问题补充中说明,谢谢您的参与。EXCEL数据统计问题请看附件,若对问题有疑问,我会尽快在问题补充中说明,谢谢您的参与。:总算看明白你的意图了,你的这个要求用函数+辅助列的方式可以解决,不过随?

最佳回答

  •   总算看明白你的意图了,你的这个要求用函数+辅助列的方式可以解决,不过随着条件的增多,要使用的辅助列也会增多,增加了复杂性,我试着给你准备了一个自定义函数,请按如下方法操作: 1、“Alt+F11”或者“工具--》宏--》Visual Basic编辑器”,打开VBA编辑环境 2、插入--》模块,然后双击左侧工程资源框的“模块1”,在右侧的代码编辑框里插入如下代码: Function pinlv(rngArea As Range, strQuery As String) Dim intDatas As Integer '定义数据总数 Dim strTemp As String '定义临时字符串 pinlv = 0 '初始化函数返回值 strTemp = "" '初始化临时字符串 intDatas = rngArea。
      EntireRow。Count '获取数据总数 For i = 1 To intDatas '循环读取数据,构建临时字符串 strTemp = strTemp & rngArea。Cells(i, 1) Next Dim j As Integer '定义循环计数器 j = 1 '初始化循环计数器 With Application '在VBA中调用工作表中的字符串处理函数 Do While Not IsError(。
      Find(。Rept(strQuery, j), strTemp)) '循环判断以1,0组合连续出现的最高频率 pinlv = pinlv + 1 '赋值给函数返回值 j = j + 1 '循环计数器 Loop End With End Function 3、完成后返回工作表中你想得到结果的地方像使用普通公式一样输入: =pinlv(A2:A51,"10") 结果为4 代码中我做了注释,应该很好理解,如果你要求“1,2,0”组合出现的频率,修改公式为“=pinlv(A2:A51,"120")”即可。
       注意: 1、自定义函数利用字符串匹配的原理设计,如果数据中存在有大于等于10的数字,计算结果可能不正确; 2、感觉你的这个需要挺独特的,不知道准备用在什么地方,是不是有其他变通或者简易的方法,呵呵,解决问题的思路比方法和手段重要得多,我个人是这样认为的。
       祝君好运~~。
    2007-09-02 14:24:12
  • 不知是不是你所要的效果。详见表。
    2007-09-02 01:13:07
  • 你要做到什么样的效果,请告知,真的打开后看起来特别的复杂
    2007-09-01 21:20:39
  • 好复杂,会了教教我们!
    2007-09-01 21:17:10
  • 可惜我打不开
    2007-09-01 20:00:03
  • 很赞哦! (102)