excel中用vlookup和index函数制作动态查询系统
很多朋友认为excel电子表格只能做做数据的纪录和简单的计算而已,却不知原来它也是一个微型的数据库系统。只要我们能运用好,也能做出数据库查询的样子出来,这不,今天小编就来和大家介绍一下制作一个简单的人事信息查询。
操作方法
- 01
我们实现要制作两个表,一个是前台的数据查询窗口,我们将它放置在sheet1中,另外就是后台的微型数据库,放在sheet2里面。
- 02
现在我们要做一个工号的下拉列表的制作,下拉列表小编之前有写过,就是选中B2单元格,单击【数据】--【数据验证】,将数据来源引用到sheet2中的工号列。这样我们的下拉列表就做好了。
- 03
在姓名后面的单元格中利用vlookup函数来实现通过查询工号得到姓名。在B3单元格中输入公式:==VLOOKUP(B2,Sheet2!$B:$J,MATCH(Sheet1!A3,Sheet2!$1:$1,0)-1),参数1中的B2表示工号,就是通过查找工号来得到姓名;参数2中的Sheet2!$B:$J表示要从工号开始的列号开始查询,即B列到J列,由于这有这一列标题,必须加以绝对引用,防止偏移;参数3中MATCH(Sheet1!A3,Sheet2!$1:$1,0)-1是将姓名与其进行精确匹配,为何要减1,要因为工号是从第二列开始的。
- 04
对于职位,我们进行自动填充就行了,关键的D列中的数据因为列号发声改变,不能自动填充,但是我们可以将公式复制过去,将单元格的名称进行一下修改就行了。
- 05
同样的道理,5~7行的单元格也可以采用上面的方法得到。
- 06
文字的显示算完成了,现在我们来对图片的引用进行处理,图片不能用现有的公式完成,因此,我们要重新写一个调用图片的公式,先把sheet2中的图片复制一张在查询窗口来,之后进行选中,然后在其他任意空白单元格中输入如下的公式:=INDEX(Sheet2!$K:$K,MATCH(Sheet1!$B$2,Sheet2!$B:$B,0))注意几个参数。Sheet2!$K:$K:表示sheet2中图片是在列号;MATCH(Sheet1!$B$2,Sheet2!$B:$B,0)表示是通过工号来进行匹配,还有一个参数是0是精确匹配,省略了。
- 07
选中并复制我们编辑的公式,回车退出编辑,然后在【公式】--【定义名称】对话框中的【引用位置】处将我们写的公式粘贴在里面,并将公式名称设为indexpicture,这样我们写的公式就完成,确定后,就可以发现查询窗口中的图片发生改变了。
- 08
再次选中查询窗口中的图片,在公式编辑地址栏中输入=IND后变化发现会自动调出刚才我们写的indexpicture公式,选中就行了。
- 09
这时我们只需要点击一下工号后面的下拉三角形,选择不同的工号,窗口中就会显示工号所对应的员工的信息了。