巧用Excel函数来实现工作表间的数据关联
开学不久,教导处交给我一个光荣的任务:填报学年报表。在学年报表中,要求填写在校所有学生的姓名、性别、家庭住址等各种信息。由于以前每学年都要填写,所以我认为这并不是一件很难的事,只要把以前的报表找出来稍改一下不就行了吗。可是,教导主任的一句“今年所有的班级已经全部重新分了班”却让我叫苦不迭。我差点儿晕倒,这样一个个的查找,再复制、粘贴,不是要把人累死吗?教导主任大概也知道工作量比较大,安慰我说:“这样吧,周末来加加班,给你多开点儿补贴。”我无可奈何地点了点头。
步骤/方法
- 01
思路分析:目前在Excel中有两张表,一张表是原来的学年报表(即“原表”,含学生的各种信息,如图1所示),一张表是现在的学生花名册(即“新表”,只有学生的姓名和性别信息,如图2所示)。只要能将“原表”中的信息根据“新表”中的学生姓名关联到“新表”中,就可以了。
- 02
选择“新表”中的C2单元格,如图3所示。单击[fx]按钮,出现“插入函数”对话框。在类别中选择“全部”,然后找到VLOOKUP函数,单击[确定]按钮,出现“函数”参数对话框。第一个参数为需要在数据表首列进行搜索的值,在这里就是搜索学生姓名,也就是“新表”中的A2单元格。第二个参数是需要在其中搜索数据的信息表,这里也就是整个“原表”的数据,即“原表!A2:G34”。 为了防止出现问题,这里,我们加上“$”,即“原表!$A$2:$G$34”,这样就变成绝对引用了。第三个参数为满足条件的单元格在数组区域内中的列序号,在本例中,也就是在“原表!$A$2:$G$34”这个区域中,根据第一个参数返回第几列的值,这里我们填入“3”,也就是返回出生年月的值。第四个参数为指定在查找时是要求精确匹配还是大致匹配,如果填入“0”,则为精确匹配。 我们需要的是精确匹配,所以填入“0”(请注意:Excel帮助里说“为0时是大致匹配”,但很多人使用后都认为,微软在这里可能弄错了,为0时应为精确匹配),此时的情形如图4所示。按[确定]按钮退出,即可看到C2单元格已经出现了正确的结果。
- 03
把C2单元格向右拖动复制到D2单元格,这时会出现错误,原因在哪里呢?原来,D2的公式自动变成了“=VLOOKUP(B2,原表!$A$2:$G$34,3,0)”,我们需要手工改一下,把它改成 “=VLOOKUP(A2,原表!$A$2:$G$34,4,0)”,即可显示正确数据。继续向右复制,同理,把后面的E2、F2等中的公式适当修改即可。一行数据出来了,对照了一下,数据正确无误,再对整个工作表进行拖动填充,整个信息表就出来了。 最后说明一下:使用这个公式的时候,要求学生名称不能有重名,如果有的话,要先稍改一下,比如在名称后面加个“大”或“小”以示区分。