|
原帖由 sunny_3521 于 2010-6-25 17:34 发表
请教各位大侠
附件中的表格由1-12月出勤统计的sheet,小妹想把1-12月的请假时数等汇总到一张表上,用各个表格直接想加的话不可以,因为每个表格对应人员的姓名不一样,用sumif公式太长了。请教大虾有没有更更简单的统 ...
莎莎?
用自定义函数帮你做了一个,数据量大的时候计算可能有点慢,不过把函数设置成非易失性函数了,不动源数据就不会触发公式计算。-
- Function TEST(rngName As Range, intCol As Integer)
- Application.Volatile (False)
- Dim i%, wst As Worksheet, k As Range
- For i = 1 To 12
- Set wst = Sheets("考勤表" & i & "月")
- Set k = wst.[G:G].Find(rngName.Value, LookIn:=xlValues)
- If Not k Is Nothing Then
- TEST = TEST + wst.Cells(k.Row, intCol)
- End If
- Next
- Set wst = Nothing
- Set k = Nothing
- End Function
复制代码 函数说明——
TEST(rngName, intCol)
rngName是指要查找的人名,单元格引用
intCol是指要查找的数据对应各月份表中的列标,为整数值
友情提醒,工作表名称中最好不要有空格,否则容易出意外!!
详细应用见附件——
[ 本帖最后由 sunya_0529 于 2010-6-26 15:25 编辑 ] |
-
-
考勤表.rar
121.92 KB, 下载次数: 188
文件内包含VBA代码,请打开文件后启用宏
|