ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: linbaoman

如何根据工作表填充人员名单

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-1-26 17:41 | 显示全部楼层
统计表内人数统计倒可以用公式,但是人员名单。。。还得请教高手了。
BY THE WAY,LZ以后设计表格时能否尽量保持对应字段一致,不然会很复杂。。。

人员名单及人员分布图.rar

24.45 KB, 下载次数: 23

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-27 10:46 | 显示全部楼层

透视表未能实现

谢谢quanyuchan ,因为是给别人提供名单所有无法让他们自己去看,但还是十分感谢。
其实在发帖前我用了一个公式:IF(E$27=F2,B$27,"")&IF(E$27=F2,"  ","")&IF(E$28=F2,B$28,"")&IF(E$28=F2,"  ","")&IF(E$29=F2,B$29,"")&IF(E$29=F2,"  ","")&IF(E$30=F2,B$30,"")&IF(E$30=F2,"  ","")&IF(E$31=F2,B$31,"")&IF(E$31=F2,"  ","")&IF(E$32=F2,B$32,"")&IF(E$32=F2,"  ","")&IF(E$33=F2,B$33,"")&IF(E$33=F2,"  ","")&IF(E$34=F2,B$34,"")&IF(E$34=F2,"  ","")&IF(E$35=F2,B$35,"")&IF(E$35=F2,"  ","")&IF(E$36=F2,B$36,"")&IF(E$36=F2,"  ","")&IF(E$37=F2,B$37,"")&IF(E$37=F2,"  ","")&IF(E$38=F2,B$38,"")&IF(E$38=F2,"  ","")&IF(E$39=F2,B$39,"")&IF(E$39=F2,"  ","")&IF(E$40=F2,B$40,"")&IF(E$40=F2,"  ","")&IF(E$41=F2,B$41,"")&IF(E$41=F2,"  ","")&IF(E$42=F2,B$42,"")&IF(E$42=F2,"  ","")&IF(E$43=F2,B$43,"")&IF(E$43=F2,"  ","")&IF(E$44=F2,B$44,"")&IF(E$44=F2,"  ","")&IF(E$45=F2,B$45,"")&IF(E$45=F2,"  ","")&IF(E$46=F2,B$46,"")&IF(E$46=F2,"  ","")&IF(E$47=F2,B$47,"")&IF(E$47=F2,"  ","")&IF(E$48=F2,B$48,"")&IF(E$48=F2,"  ","")&IF(E$49=F2,B$49,"")&IF(E$49=F2,"  ","")&IF(E$50=F2,B$50,"")&IF(E$50=F2,"  ","")&IF(E$51=F2,B$51,"")&IF(E$51=F2,"  ","")

不过由于if公式的长度受限制,每次用只能是25个,但如果把这个公式反复用20回就能解决500个人员的数字,由于用到这个表的二级单位的人员一般不超过500人,所以也能勉强用,但毕竟麻烦。
还是请高手请教。

TA的精华主题

TA的得分主题

发表于 2011-1-27 11:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
强!学习了.谢谢.

TA的精华主题

TA的得分主题

发表于 2011-1-27 14:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
透视还是比较好的办法!

TA的精华主题

TA的得分主题

发表于 2011-1-28 09:37 | 显示全部楼层
提供一个思路!供参考。
先按名单表的E、F、G列排序。
=IF(SUMPRODUCT((名单!$E$1:$E$1000=B5)*(名单!$F$1:$F$1000=$A$1)*(名单!$G$1:$G$1000=$C$3))>0,MID(PHONETIC(OFFSET(名单!$C$1,MATCH(B5,名单!E:E,)-1,,SUMPRODUCT((名单!$E$1:$E$1000=B5)*(名单!$F$1:$F$1000=$A$1)*(名单!$G$1:$G$1000=$C$3)),2)),2,999),"")

人员名单及人员分布图.rar

18.44 KB, 下载次数: 29

TA的精华主题

TA的得分主题

发表于 2011-1-28 11:53 | 显示全部楼层
原帖由 linbaoman 于 2011-1-26 13:08 发表
在excel2007中,如有100行数据,经筛选后选择了第5-17行和32100行,在删除筛选结果后,(有时)17-31行也被删除了,这是EXCEL2007的漏洞吗?怎么解决?谢谢!



筛选后需要“重新应用”,再删除

TA的精华主题

TA的得分主题

发表于 2011-1-28 16:42 | 显示全部楼层
VBA做的,楼主按一下“填写”按钮,看一下结果是否符合要求
Sub fb()
Dim a%, b%, c%, d%, i%
i = 1
a = Sheet1.Range("a65536").End(xlUp).Row
b = Sheet2.Range("a65536").End(xlUp).Row
For c = 2 To a
  For d = 2 To b
    If Sheet1.Cells(c, 4) = Sheet2.Cells(d, 2) Then
      Select Case Sheet1.Cells(c, 5)
         Case "国内"
            Select Case Sheet1.Cells(c, 6)
              Case "工作"
                Sheet2.Cells(d, 3) = Sheet2.Cells(d, 3) & " " & Sheet1.Cells(c, 3)
                Sheet2.Cells(d, 4) = Sheet2.Cells(d, 4) + i
              Case "待岗"
                Sheet2.Cells(d, 5) = Sheet1.Cells(c, 3)
              Case "新入职"
                Sheet2.Cells(d, 6) = Sheet2.Cells(d, 6) & " " & Sheet1.Cells(c, 3)
                Sheet2.Cells(d, 7) = Sheet2.Cells(d, 7) + i
              Case "事假"
                Sheet2.Cells(d, 8) = Sheet2.Cells(d, 8) & " " & Sheet1.Cells(c, 3)
              Case "修年休假"
                Sheet2.Cells(d, 9) = Sheet2.Cells(d, 9) & " " & Sheet1.Cells(c, 3)
             End Select
         Case "国外"
            Select Case Sheet1.Cells(c, 6)
              Case "工作"
                Sheet2.Cells(d, 10) = Sheet2.Cells(d, 10) & " " & Sheet1.Cells(c, 3)
              Case "待岗"
                Sheet2.Cells(d, 11) = Sheet2.Cells(d, 11) & " " & Sheet1.Cells(c, 3)
              Case "新入职"
                Sheet2.Cells(d, 12) = Sheet2.Cells(d, 12) & " " & Sheet1.Cells(c, 3)
              Case "事假"
                Sheet2.Cells(d, 13) = Sheet2.Cells(d, 13) & " " & Sheet1.Cells(c, 3)
              Case "修年休假"
                Sheet2.Cells(d, 14) = Sheet2.Cells(d, 14) & " " & Sheet1.Cells(c, 3)
             End Select
    End Select
End If
Next
Next
End Sub

人员名单及人员分布图.rar

26.14 KB, 下载次数: 23

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-30 08:51 | 显示全部楼层

回复 15楼 wx486 的帖子

谢谢wx486   ,您的回答几乎满足了我的要求,也看懂了,还是十分感谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-30 08:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 16楼 phz1234 的帖子

谢谢 phz1234 ,我下次应用的时候会这么做,但不知道完全是这个原因。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-30 08:59 | 显示全部楼层

回复 17楼 eqzh 的帖子

谢谢eqzh   十分完美,我让我们分公司填写时候采用两种方式,不会用宏的就用15楼 wx486 的帖子,会用宏的就用您这个,十分感谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-23 09:33 , Processed in 0.038423 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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