Excel精英培训网

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

[已解决]这个东西要加个什么函数才能实现啊(附建筑检验批及保证资料统计管理表)

[复制链接]
发表于 2009-11-28 22:53 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2015-8-9 12:08 编辑

我在做一个查询函数的时候借用的学良的函数

Function MyStr(Rng As Range, Page As Range, FVal) As String
  Dim SM()
For i = 1 To Rng.Count
  If Rng(i) = FVal Then
   ReDim Preserve SM(s)
  SM(s) = Page(i): s = s + 1
  End If
Next
MyStr = Join(SM, Chr(10))

End Function

其中MYSTR中的三个变量分别指的是: 要查询的数据;要显示的数据;查询的条件。

我吧这个函数用在我自己做的表中了,

但是我还想再查询中加入一个 统计符合条件的函数有多少组

于是我自己根据上面的写了一段:

Function zs(Rng As Range, FVal) As String
 Dim k 
 If FVas.count = 0 Then
     zs = ""
 Else
 For i = 1 To Rng.Count
     If Rng(i) = FVal Then
        k = k + 1
     End If
 Next
     zs = k
End If
End Function

在这个里面FVas.count 是值得统计所选区域单元格的个数有多少,而不是类似于count()这个检查所选区域里是否是空值的函数

所以请大侠们帮我看看这里要用什么函数啊?是不是类似于count()这个函数的函数啊

下面是我做的这个表格,搞建筑的资料员可以用得到

[ ide] xXehMxUK.rar (303.98 KB, 下载次数: 15)

发表于 2009-11-28 23:10 | 显示全部楼层    本楼为最佳答案   

看了一下,估计是countif的自定义版本

Function zs(Rng As Range, FVal) As String
 Dim k%, i%
 If Rng.Count = 0 Then '这里应该改一下
     zs = ""
 Else
 For i = 1 To Rng.Count
     If Rng(i) = FVal Then
        k = k + 1
     End If
 Next
     zs = k
End If
End Function

如果是这样的,直接用countif不是更省事[em01]

回复

使用道具 举报

发表于 2009-12-9 19:24 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2009-12-10 23:22 | 显示全部楼层

这表我又做了改动,我根据我实际需要在不停的变化在

回复

使用道具 举报

 楼主| 发表于 2009-12-10 23:46 | 显示全部楼层

你说的改下的那个地方是改什么啊
回复

使用道具 举报

发表于 2009-12-11 01:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2010-4-8 17:36 | 显示全部楼层

我也是资料员,一定能用得到
回复

使用道具 举报

发表于 2010-10-16 22:25 | 显示全部楼层

谢谢楼主分享,看哈子啊
回复

使用道具 举报

发表于 2013-4-28 10:08 | 显示全部楼层
看看
是不要是好东西啊
回复

使用道具 举报

发表于 2015-8-7 22:35 | 显示全部楼层
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 09:21 , Processed in 0.372922 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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