加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何应用EXCEL建立党员信息查询系统

(2018-02-08 14:43:30)
标签:

财经

文化

教育

分类: EXCEL

EXCEL具有强大而灵活的数据管理功能,如何应用EXCEL建立党员信息查询系统,使企业党员信息查询管理更加灵活方便,数据统计更加准确快捷,是我们近期完成的项目之一。

首先是实现全局的自动统计功能。以支部为单位,按性别、类别、年龄、学历、职称分别统计党员分布情况。通过统计表,能快速掌握本单位党员的基本状况。具体统计表如下图所示:

http://s7/mw690/001N2BJpzy7i0Mpzc2O56&690

统计表要实现自动统计功能,其中的技术要点有二个。

一是使用数学函数SUMPRODUCT进行多条件计数。基本的用法,SUMPRODUCT函数用于数组或区域所有元素对应相乘,然后把乘积相加。例如,SUMPRODUCTa1:b2,c1:d2=a1*c1+b1*d1+a2*c2+b2*d2。因为1*11,然后函数自动会相加,因此,提供了我们多条件计数的可行性。只需要把数组中的值换成逻辑值,便能满足我们的需要。例如,统计公司机关支部男党员的数量,使用公式SUMPRODUCT((党员名册!$C$2:$C$201=$A6)*(党员名册!$D$2:$D$201=$D4))。公式初步分解过程:党员名册!$C$2:$C$201定义了一个区域,此区域内容存放着党员所属支部的名称,$A6单元格存放“公司机关支部”的值,(党员名册!$C$2:$C$201=$A6)可判断在党员名册表第3列第2行至第201行范围内,所有党员是否属于公司机关支部的逻辑状况,并形成一个由199个逻辑值组成的数组,例如{false;true;true;false;;ture;false}。同理,(党员名册!$D$2:$D$201=$D4)用于判断党员性别是否为单元格d4规定的“男”,并形成一个由199个逻辑值组成的数组。EXCEL中,默认false的值为0true的值为1,以上二个数组相乘,则只有2个条件都为真的时候,得到1的值。最后,将所有的1相加,便能得到想要的计数数据。

 同理,可以将此公式扩展到三个条件或多个条件,如对于年龄段的统计,设置公司SUMPRODUCT((支部名称=$B9)*(年龄>30)*(年龄<=40))可以统计规定支部范围内,年龄在30岁至40岁之间的党员数量。

二是其他公式的设置及保护。SUM()函数用于求和,对前面统计出来的各支部数据,分铝厂党总支、电厂党总支进行小计汇总。然后全公司汇总。Today()函数用于自动更新日期。

以上公式设置好后,统计表就能实现对党员名册的情况进行自动统计的功能了。因为公式稍复杂,有的公式长度很长,因此需要进行适当的保护,避免误操作删除或更改。在EXCEL界面,选定保护工作表,进一步选中保护工作表及锁定的单元格内容、允许此工作的所有用户进行:选定锁定单元格、选定未锁定单元格,在取消工作表保护时使用的密码栏内,设置一个密码。确定完成后,再点击带有公式的单元格,编辑栏内便隐藏了公式文本。

其次,党员个人信息的查询。应该做到:在姓名栏内输入党员姓名后,登记表能自动显示该党员的其他各项信息,包括照片。如下图所示 。如需要打印,点打印按钮后,就能得到带照片的党员登记表。

http://s10/bmiddle/001N2BJpzy7i0MqGGA9b9&690

党员信息查询,涉及的功能点有二个。一是使用函数vlookup实现用姓名查其他信息,二是使用VBA实现照片的匹配。

Vlookup()EXCEL的纵向查找函数,包含4个参数,分别为lookup_value,table_array,col_index_num,range_lookuplookup_value是需要查找比对的值;table_array代表目标查找区域,可以为一列或多列;col_index_num表示所需数据在目标区域的列数;range_lookup为一逻辑值,值为0时表示目标值和查找值需要精确匹配,值为1时表示目标值和查找值近似匹配。

例如,需要查询党员的性别信息,在D3单元格内输入公式=VLOOKUP($B$3,data,3,FALSE),表示精确匹配查询由单元格b3所规定的名为data区域的第1列数据,匹配成功后,取出对应行的第3列对应的性别数据值。其他信息,按同样的原理,通过更改目标col_index_num值均可很容易获得。

匹配党员照片的功能,首先要建立一个文件夹,专门用于存放党员的照片文件。照片文件按姓名命名,便于EXCEL VBA查询匹配。具体VBA语句如下:

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

On Error Resume Next

Shapes.SelectAll

Selection.ShapeRange.Delete

Range("e3").Select

'Range("e3").RowHeight = 160 '定义行高,磅数。

Range("e3").ColumnWidth = 24 '定义列宽,标准字符数。

Shapes.AddShape(msoShapeRectangle, 401, 114, 135, 169).Select '定义图片框的左上角位置和宽度、高度。

Selection.ShapeRange.Fill.Visible = msoFalse

Selection.ShapeRange.Shadow.Obscured = msoTrue

Selection.ShapeRange.Shadow.Type = msoShadow18

Selection.ShapeRange.Fill.UserPicture ThisWorkbook.Path & "\党员照片\" & Range("b3").Value & ".jpg"

Range("b3").Select

Application.EnableEvents = True

End Sub

       以上语句,在E3单元格中添加图片组件,并填充我们之前准备的图片文件。当B3单元格的党员姓名发生变化时,激活此程序更新图片,实现了党员照片随党员姓名的变化而更新。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:友谊的小船
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有