Excel中大量的数据常常让我们眼花缭乱。其实我们可以利用Excel的控件功能,做一个查询表,只显示我们要查询的数据。
下面我们将要用到Excel 2016的“开发工具”,默认情况下有些人的Excel可能没有显示这一项,需要简单设置一下。点击“文件→选项”,在打开的选项窗口中,左侧切换到“自定义功能区”,再在右侧找到“开发工具”项,将其勾选上就可以了。
首先制作一个前台查询界面,这一界面可以简洁明了,比如只有一行表头加一个空白行,各人根据自己的实际需要进行设置。小编在这里模拟了一个简单的单位人事查询表。
接下来再制作后台数据库。数据库表格可以放在离前台较远的位置,甚至可以放在另外的工作表中,达到隐藏的效果。这里为了方便讲解,小编将两个表格排列在了一起,它的表头与前台表格完全一样,只不过下面填充了大量的数据信息。
接下来制作下拉列表框。切换到“开发工具”选项卡中,点击“插入”,在弹出菜单中点击“组合框(窗体控件)”。
此时光标变成“十”字形,可在工作表任意空白处画出一个下拉列表控件的图标。右击此控件,从右键菜单中选择“设置控件格式”。
在打开的设置控件格式窗口中,点击一下“数据源区域”后面的输入框,然后在工作表中,选取后台数据中“工号”一列的所有数据,将自动输入该区域的标号。再用鼠标点击一下“单元格链接”后面的输入法,然后在工作表任意空白单元格中点击,即可设置链接的单元格,本例为B9单元格。
下拉显示项数默认为8,此处不做改动。直接点击“确定”按钮返回。此时点击下拉按钮,将显示出“工号”列的所有项,可以任意进行选择。链接单元格中将显示所选的列数。
在前台界面表格中,选择“工号”下的第一个单元格,本例为B4单元格,在此单元格中输入以下公式:
=INDIRECT(ADDRESS(INDIRECT(“B9”)+10,COLUMN(B11)))
INDIRECT函数的主要作用就是引用指定的某单元格中的内容,它的参数指出了要引用的单元格的具体位置。本例中的“ADDRESS(INDIRECT(“B9”)+10,COLUMN(B11))”,B9是前面制作的下拉列表的链接单元格,显示下拉列表中的行数,10是后台数据表格与工作表顶端的距离行数。这两者相加,得出的正是后台数据表中相对应单元格的数据,以作为INDIRECT函数的参数使用。
公式输入完毕,通过拖动的方式,将它复制到另外5个单元格中。最后,将前面制作的下拉列表控件拖放到前台界面的第一个数据单元格中覆盖原先的单元格,并调整好大小与单元格同大。
至此,一个动态查询表就大功告成了,点击下拉菜单选取任意某个工号,该工号所对应的员工信息就会自动显示出来啦。