三大步完成工资查询系统!举一反三,你可以做出需要的查询工具

这是 EXCEL进阶课堂 · 案例析 的第1篇教程。

01 案例引入

工资查询,是一个比较常见且具有典型代表性的任务。

工资查询,到底要完成怎样的一个功能呢?有小伙伴一定会说:很简单呀,就是从一定量的工资数据中,按照查找项,找到相关人员的信息显示出来。如果只是从函数应用的方法来看,这个回答是没有问题的,但是,如果从一个查询系统层面来看,有五个重要问题需要思考:

(1)所有人的工资信息,能不能让人随意看?如何处理?

(2)查询页面,任何地方都可以输入内容吗?如何处理?

(3)查询项可以随便选择吗?选择标准是什么?

(4)如何查询?查询不到怎么办?

(5)查询公式能让人随意查看吗?如何处理?

这些问题,很多小伙伴以前是没有考虑过的。进阶君和大家一起进行案例分析。

02 案例分析

虽然这是一个简单的查询系统,但是它的安全性、容错性、合理性是需要认真思考和规划的。

(一)查询系统安全性

(1)必须隐藏员工工资信息

分析:员工工资信息是非常隐私的数据,不能是任意人都能随意查看的。工资查询系统是面向所有人的,所以必须对员工工资信息作隐藏处理,而且为了防止人为破坏和篡改数据,还需要对数据进行保护操作。

关键技术:工作表隐藏+工作表保护

(2)查询页面内容输入区域限制

分析:查询页面(工作表)中,需要完成输入内容并显示查询结果。输入内容由用户完成的,但是输入的区域(单元格)必须限制,即只能在这里输入,其它区域不允许输入。查询结果只能浏览,不能修改、删除等。

关键技术:允许编辑区域设定+工作表保护

(二)查询系统合理性

(1)查询项唯一准则

分析:查询系统就是根据某个查询项去查找相关的记录。选择查询项的合理性和科学性,直接影响到查询结果。在选择查询项时,以查询项唯一性为准则进行选择。如:在姓名和身份证号两个选项中,姓名有可能出现同名,而身份证号是唯一的,所以选择身份证号为查询项是合理的。再如:在姓名和工号两个选项中,选择工号为查询项是合理的。

(2)公式隐藏原则

分析:查询系统中,除了使用VBA技术外,自然会用到查询函数形成公式,而这个公式如果能在查询页面当中被看到,既影响美观效果,也非常不合格。

关键技术:单元格保护+工作表保护

(三)查询系统容错性

所谓容错性,就是指对出现的各种非正常结果进行必要的处理,使系统能够给出各种合理的提示信息等。

(1)查询无结果

分析:在查询系统中,经常会遇到查无结果的情况,对于这种情况需要必要的处理,比如显示“查无此人”。

关键技术:IFERROR函数

(2)查询项无输入

分析:在查询项无输入时,不应该进行查询,否则会显得很诡异。

关键技术:IF函数

03 案例解决

进阶君将与各位小伙伴一起,不用VBA代码,纯函数来实现工资查询系统,抛砖引玉,供大家举一反三参考使用。

第一步:规划数据表和设计查询页面

(1)规划工资数据表

以“员工工资信息”为名,建立工作表,规划和存放工资数据表。效果如下图所示:

(2)设计查询页面

在单独工作表中,设计查询页面,决定输入项,查找显示项等信息。根据前面的所讲的原则,将工号设定为查询项,与工号、姓名和与工资相关的数据形成查找显示项。效果如下图所示:

第二步:完成查询公式设定

(1)基本公式设定

在一张工表中输入内容,然后再另一张工表当中去查找,找到以后将结果返回到前表中,这是典型的查找应用。实现这一功能的函数有很多,我们在这里采用vlookup函数来实现。

在“工资查询”工作表中,选中B5单元格,然后在里面输入公式:

公式的结果为:#N/A。原因有两个:其一,查询工号 没有输入;其二,查询工号在没有输入的情况下不可能查询到结果。

(2)第一次升级公式:排除没有输入情况

在“查询工号”没有输入的情况下,不应该去进行查询动作,这需要对公式进行升级处理。如何处理呢?用if函数进行处理。修改B5单元格里面的公式:

公式修改后,可以使没有输入的情况不进行查询。可是如果有输入,在没有找到相应记录的情况下,vlookup函数仍然回返回#N/A,这个符号对于一般用户而言非常费解。这种情况需处理。

(3)第二次升级公式:处理查无结果的情况

在C2单元格输入查询工号后,出现查无结果的时,会得到#N/A这个符号,它在EXCEL中会被认为是一种错误。于是我们可以用iferror函数来进行处理。修改B5单元格里面的公式:

到此为止,B5单元里面的公式已经比较完美了。但是,C5单元格至K5单元格仍需要输入查询公式,如果每个都去写,那么效率很低,如果能够进行公式复制就会大大提高效率。

(4)第三次升级公式:解决公式拖动复制问题

在vlookup函数中,返回查询结果是需要指定的,B5返回的是第1列,C5就应该返回第2列,如此类推。这样的指定如何用公式解决呢?大家观察,B5单元格所在的列是第2列,要返回的是查询区域的第1列,C5单元格所在的列是第3列,要返回的是查询区域的第2列。于是,我们可以总结出,要返回的查询区域的列数比单元格所在列数少1。修改B5单元格里面的公式:

将查找区域改成绝对引用方式后,采取拖动复制的方式,将C5单元格至K5单元格填充好公式。具体效果如下动图所示。

第三步:完善后续设定

(1)隐藏“工资查询”工作表

(2)设定C2单元格为可编辑区域

通过 审阅 菜单下面的 允许用户编辑区域 进行设定。

具体操作及效果如下动图所示。

(3)隐藏单元格公式设定

对单元格里面公式进行隐藏需要通过两步完成,这是第一步,需要与下一步进行配合才能真正实现。具体操作及效果如下动图所示。

(4)对工作表和工作簿进行保护

要使得可编辑区域和隐藏单元格公式起作用,需要对工作表进行保护。

要使得隐藏的工作表不能被取消隐藏,需要对工作簿进行保护。

具体操作过程及效果如下动图所示。

04 总结思考

本案例以工资查询系统为蓝本,按系统规划的思路,采取最基本的函数操作方法,完成了整个系统的实现。小伙伴可以举一反三,结合工作实际进行具体查询实现。


为方便小伙伴们学习,进阶君将原始素材共享出来,获取素材的方法:

第一步:关注 Excel进阶课堂。

第二步:私信 Excel进阶课堂,因为设定的是自动回复,所以内容一定要准确

私信内容:练一练

第三步:根据得到信息打开网盘,找到 案例01 工资查询系统 工作簿 自行下载

(0)

相关推荐