- 论坛徽章:
- 0
|
2.出生日期输入\r\n(1)函数分解 \r\nCONCATENATE 函数将几个文本字符串合并为一个文本字符串。 语法:CONCATENATE(text1,text2,...) Text1,text2,...为1~30 个要合并成单个文本项的文本项。文本项可以为文本字符串、数字或对单个单元格的引用。\r\n\r\n(2)实例分析 \r\n与上面的思路相同,我们可以在E2 单元格中输入公式“=IF(LEN(C2)=15,CONCATENATE(\"19\",MID(C2,7,2),\"年\r\n\",MID(C2,9,2),\"月\",MID(C2,11,2),\"日\" ,CONCCTENCTE(MID(C2,7,4),\"年\",MID(C2,11,2),\"月\",MID(C2,13,2),\"日\" )”。其中“LEN(C2)=15”仍然作为逻辑判断语句使用,它可以判断身份证号码是15 位的还是18 位的,从而调用相应的计算语句。 对15 位的身份证号码来说,左起第7 至12 个字符表示出生年、月、日,此时可以使用MID 函数从身份证号码的特定位置,分别提取出生年、月、日。然后用CONCATENATE 函数将提取出来的文字合并起来,就能得到对应的出生年月日。公式中“19”是针对早期身份证号码中存在2000 年问题设计的,它可以在计算出来的出生年份前加上“19”。对“18”位的身份证号码的计算思路相同,只是它不存在2000 年问题,公式中不用给计算出来的出生年份前加上“19”。 注意:CONCATENATE 函数和MID 函数的操作对象均为文本,所以存放身份证号码的单元格必须事先设为文本格式,然后再输入身份证号。 \r\n\r\n3.职工信息查询\r\nExcel 提供的“记录单”功能可以查询记录,如果要查询人事管理工作表中的某条记录,然后把它打印出来,必须采用下面介绍的方法。 \r\n\r\n(1)函数分解 \r\nINDEX 函数返回数据清单或数组中的元素值,此元素由行序号和列序号的索引值给定。 INDEX 函数有两种语法形式:数组和引用。数组形式通常返回数值或数值数组,引用形式通常返回引用。当函数INDEX 的第一个参数为数组常数时,使用数组形式。 语法1(数组形式):INDEX(array,row_num,column_num) Array 为单元格区域或数组常量。如果数组只包含一行或一列,则相对应的参数row_num 或column_num为可选。如果数组有多行和多列,但只使用row_num 或c olumn_num,函数INDEX 返回数组中的整行或整列,且返回值也为数组;Row_num 为数组中某行的行序号,函数从该行返回数值。如果省略row_num, 则必须有column_num;Column_num 为数组中某列的\r\n列序号,函数从该列返回数值。如果省略column_num,则必须有row_num。 语法2(引用形式):INDEX(reference,row_num,column_num,area_num) Reference 表示对一个或多个单元格区域的引用。如果为引用输入一个不连续的区域,必须用括号括起来。如果引用中的每个区域只包含一行或一列,则相应的参数row_num 或\r\ncolumn_num 分别为可选项;Row_num 引用中某行的行序号,函数从该行返回一个引用;Column_num引用中某列的列序号,函数从该列返回一个引用;Area_num 选择引用中的一个区域,并返回该区域中row_num 和column_num 的交叉区域。选中或输入的第一个区域序号为1,第二个为2,以此类推。如果省略area_num,函数INDEX 使用区域1。 MATCH 函数返回在指定方式下与指定数值匹配的数组中元素的相应位置。 语法:MATCH(lookup_value,lookup_array,match_type) Lookup_value 为需要在数据表中查找的数值;Lookup_value 为需要在Look_array 中查找的数值;Match_type 为数字-1、0或1 。 \r\n\r\n(2)实例分析 \r\n如果上面的人事管理工作表放在Sheet1 中,为了防止因查询操作而破坏它(必要时可以添加只读保护),我们可以打开另外一个空白工作表Sheet2,把上一个数据清单中的列标记复制到第一行。假如你要以“身份证号码”作为查询关键字,就要在C2 单元格中输入公式“=INDEX(Sheet1!C2:C600,MATCH( SC S5,Sheet1! SC S2: SC S600,0),1)”。其中的参数“ SC S5”引用公式所在工作表中的C5 单元格(也可以选用其他单元格),执行查询时要在其中输入查询关键字,也就是待查询记录中的身份证号码。参数“Sheet1!C2:C600”设定INDEX 函数的查询范围,引用的是数\r\n据清单C 列的所有单元格。MATCH函数中的参数“0”指定它查找“Sheet1! SC S2: SC S600”区域中等于 SC S5的第一个值,并且引用的区域“Sheet1! SC S2: SC S600,0”可以按任意顺序排列。上面的公式执行数据查询操作时,首先由MATCH 函数在“Sheet1! SC S2: SC S600” 区域搜索,找到“ SC S5” 单元格中的数据在引用区域中的位置(自上而下第几个单元格),从而得知待查询数据在引用区域中的第几行。 接下来INDEX 函数根据MATCH 函数给出的行号,返回“Sheet1!C2:C600”区域中对应行数单元格中的数据。假设其中待查询的“身份证号码”是“3234567896”,它位于“Sheet1! SC S2: SC S600”区域的第三行,MATCH函数就会返回“3”。接着INDEX 函数返回“Sheet1!C2:C600”区域中行数是“3”的数据,也就是“3234567896”。 然后,我们将光标放到C2 单元格的填充柄上,当十字光标出现以后向右拖动,从而把C2 中的公式复制到D2、E2 等单元格(然后再向左拖动,以便把公式复制到B2、A2单元格),这样就可以获得与该身份证号对应的性别、籍贯等数据。 注意:公式复制到D2、E2等单元格以后,INDEX函数引用的区域就会发生变化,由C2:C600 变成D2 600、E2:E600等等。但是MATCH 函数返回的(相对)行号仍然由查询关键字给出,此后INDEX 函数就会根据MATCH 函数返回的行号从引用区域中找到数据。 在Sheet2 工作表中进行查询时只要在查询输入单元格中输入关键字,回车后即可在工作表的C2 单元格内看到查询出来的身份证号码。如果输入的身份证号码关键字不存在或输入错误,则单元格内会显示“#N/A”字样。 |
|