
继续学习《Excel 2003函数应用完全手册》第四章,函数应用案例,今天看信息统计的第四部分。
使用Excel 管理人事信息,具有无须编程、简便易行的特点。假设有一个人事管理工作表,它的A1、B1、C1、D1、E1、F1、G1 和H1 单元格分别输入“序号”、“姓名”、“身份证号码”、“性别”、“出生年月”等。自第2 行开始依次输入职工的人事信息。为了尽可能减少数据录入的工作量,下面利用Excel 函数实现数据统计的自动化。
3 职工信息查询
3.2 实例分析
如果上面的人事管理工作表放在Sheet1 中,为了防止因查询操作而破坏它(必要时可以添加只读保护),我们可以打开另外一个空白工作表Sheet2,把上一个数据清单中的列标记复制到第一行。假如你要以“身份证号码”作为查询关键字,就要在C2 单元格中输入公式
“=INDEX(Sheet1!C2:C600,MATCH( $C$5,Sheet1! $C$2: $C$600,0),1)”。
其中的参数“ $C$5”引用公式所在工作表中的C5 单元格(也可以选用其他单元格),执行查询时要在其中输入查询关键字,也就是待查询记录中的身份证号码。参数“Sheet1!C2:C600”设定INDEX 函数的查询范围,引用的是数据清单C 列的所有单元格。
MATCH 函数中的参数“0”指定它查找“Sheet1! $CS2: $C$600”区域中等于 $C$5 的第一个值,并且引用的区域“Sheet1! $C$2: $C$600,0”可以按任意顺序排列。
上面的公式执行数据查询操作时,首先由MATCH 函数在“Sheet1!$C$2: $C$600”区域搜索,找到“ $C$5”单元格中的数据在引用区域中的位置(自上而下第几个单元格),从而得知待查询数据在引用区域中的第几行。
接下来INDEX 函数根据MATCH 函数给出的行号,返回“Sheet1!C2:C600”区域中对应行数单元格中的数据。假设其中待查询的“身份证号码”是“3234567896”,它位于“Sheet1!$C$2:$C$600”区域的第三行,MATCH 函数就会返回“3”。接着INDEX 函数返回“Sheet1!C2:C600”区域中数是“3”的数据,也就是“3234567896”。
然后,我们将光标放到C2 单元格的填充柄上,当十字光标出现以后向右拖动,从而把C2 中的公式复制到D2、E2 等单元格(然后再向左拖动,以便把公式复制到B2、A2 单元格),这样就可以获得与该身份证号对应的性别、籍贯等数据。
注意:公式复制到D2、E2 等单元格以后,INDEX 函数引用的区域就会发生变化,由C2:C600 变成D2:D600、E2:E600等等。但是MATCH 函数返回的(相对)行号仍然由查询关键字给出,此后INDEX 函数就会根据MATCH 函数返回的行号从引用区域中找到数据。
在Sheet2 工作表中进行查询时只要在查询输入单元格中输入关键字,回车后即可在工作表的C2 单元格内看到查询出来的身份证号码。如果输入的身份证号码关键字不存在或输入错误,则单元格内会显示“#N/A”字样。
小结
本部分主要介绍了用INDEX 及MATCH函数来根据给定信息查询其他相关信息。