Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 张雄友

[已解决]条件提取

[复制链接]
发表于 2013-11-3 15:52 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yyyydddd8888 于 2013-11-3 15:54 编辑

请用这一个文件,刚才好象传成了第一个文件:

我首先统计了车间的个数:brr 里面装的就是车间的个数,因此可以统计任意多个车间的前10名。
再按各车间进行了统计。


修改提取前10名明细.zip

51.5 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2013-11-3 15:57 | 显示全部楼层
yyyydddd8888 发表于 2013-11-3 15:52
请用这一个文件,刚才好象传成了第一个文件:

我首先统计了车间的个数:brr 里面装的就是车间的个数,因 ...

可以解释一下这几句???

crr(1, n) = arr(i, 1)
        crr(2, n) = "烫衣"
        crr(3, n) = arr(i, 2)
        crr(4, n) = arr(i, 4)
        crr(5, n) = arr(i, 5)
回复

使用道具 举报

发表于 2013-11-3 15:57 | 显示全部楼层
张雄友 发表于 2013-11-3 15:32
可以用于多个车间?哪句代码可以看出?谢谢!

For i = 1 To UBound(arr)
    If Not dic.exists(arr(i, 1)) Then
       dic(arr(i, 1)) = ""
       End If
  Next i
    brr = dic.keys


这一句代码就是统计车间名称的,后面的代码再按照名称进行统计前10名。

请用11楼的附件,肯定没有问题。
回复

使用道具 举报

发表于 2013-11-3 16:11 | 显示全部楼层
本帖最后由 yyyydddd8888 于 2013-11-3 16:14 编辑
张雄友 发表于 2013-11-3 15:57
可以解释一下这几句???

crr(1, n) = arr(i, 1)

For i = 1 To UBound(arr)                  '这是装有数据源的数组,从第一条开始依次判断,如果符合下面的条件就把它装入数组crr    If arr(i, 1) = brr(k) And arr(i, 3) Like "*烫衣*" Then      
n = n + 1     
ReDim Preserve crr(1 To 5, 1 To n)      
crr(1, n) = arr(i, 1)       ' 因为要redim preserve只能改变数组的第二维,所以把arr中的值转置后赋给crr.就是把arr中第一行的        crr(2, n) = "烫衣"         '第一列给crr的第一行的第一列,把arr的第一行的第二列给crr的第三行第一列,把arr的第一行第四列        crr(3, n) = arr(i, 2)       '给crr的第四行第一列,把arr的第一行第五列给crr的第五行第一列。因为最后的结果的第二列的职务        crr(4, n) = arr(i, 4)       '全为“烫衣",所以把crr的第二行全都赋值为”烫衣".  有一个符合条件就给n增加一个,这样就能把所有        
crr(5, n) = arr(i, 5)     ’符合条件的都装在crr的列中了。
End If
Next i


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-27 05:02 , Processed in 0.370059 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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