Excel中查找函数的妙用详解介绍( 二 )


参数解释:
lookup_value——需要在表格或数组第一行中查找的数值,可以是数值、字符串或引用;
table_array——需要在其中查找数值的表格区域、数组或是表格区域的引用;
row_index_num——为 table_array 中待返回的匹配值的行序号;
range_lookup——为一逻辑值,为TRUE或省略该值时,要求table_array第一行的数据必须升序排列,否则会得到错误的结果,同时表示待查找内容与查找内容近似匹配就可以了,如果不能精确匹配的话,则函数返回小于lookup_value的最大数值;如果为FALSE,不需要table_array的数值进行排序,并要求精确匹配,如果没有找到则函数返回#N/A 。
VLOOKUP()函数的格式如下:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
函数的参数中除了col_index_num表示table_array 中待返回的匹配值的列序号外,其他参数的意义和HLOOKUP()相同 。
函数举例:
例2:在BOOK2中,需要根据每一行中的资产类别(列标为D),自动的计算出该资产的折旧年限 。
我们可以进行如下的操作:
(1)由于在现有的表格当中不存在资产类别和折旧年限的对应关系,因此首先要根据资产分类的情况构造出一个数组,数组的第一行为资产的类别名称,第二行为资产所对应的折旧年限,{“类别1”,“类别2”,“类别3”,“类别4”,“类别5”;4,6,7,8,10};
(2)在BOOK2的SHEET1中插入一空列,列标为K,在K2单元格中输入如下的公式:
=HLOOKUP(D2, {“类别1”,“类别2”,“类别3”,“类别4”,“类别5”;4,6,7,8,10},2,FALSE),
(3)选中K2单元格,将鼠标指针移动至该单元格右下角的黑点处,指针变为小黑十字形状时,按住左键,拖动鼠标至K80单元格,折旧年限会自动地显示出来 。
例3:按照BOOK1 中SHEET1的卡片号(列标为B)从BOOK2中SHEET1的型号列(列标为E)获取与该卡片号对应的内容,从而在BOOK1的SHEET1中自动的生成一个新列(列标为U) 。
解决方法
(1)由于是在列中查找匹配的值,需要返回当前行制定列的值,因此适宜使用VLOOKUP()函数,确定需要查找的数值为从BOOK1/SHEET1的B2到B80,待查找的范围为BOOK2/SHEET1的B2:E1000,返回匹配值的列序号为4 。
(2)在BOOK1/SHEET1的U2单元格,输入如下的公式:
=VLOOKUP(B2,[BOOK2.XLS]SHEET1!$B$2:$E$1000,4,FALSE)
(3)选中U2单元格,将鼠标指针移动至该单元格右下角的黑点处,指针变为小黑十字形状时,按住左键,拖动鼠标至U80单元格,对应的型号会在U列中显示出来 。
3.IF()
格式:IF(logical_test,value_if_true,value_if_false)
IF函数的作用是根据逻辑判断的结果返回相应的值
参数解释:
logical_test——逻辑表达式,
value_if_true——结果为TRUE时,函数返回的值;
value_if_false——结果为FALSE时,函数返回的值;
value_if_true和 value_if_false都可以是其他的公式,也可以是IF函数的嵌套进行多级判断,嵌套不能超过7层 。
当逻辑表达式包含有函数的时候,可以使用ISERROR()函数来判断函数返回的结果是否是错误值(包括#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? 或 #NULL!) 。
ISERROR()函数的格式为ISERROR(value),其中参数value为要检测的值 。
函数举例:
例4:在例1的基础上,如果找到卡片号,则在BOOK1的SHEET1的N列的相应行处显示“相符”,否则显示“未发现” 。

解决办法:
在BOOK1的SHEET1的N2单元格处输入如下的公式:
=IF(ISERROR(MATCH(B2,“BOOK1.XLS”!NAME1,0))=FALSE,“相符”,“未发现”)
在实际的工作中,可能会先判断一下某个单元格中的数值(数字、文本或引用)在另外的一个工作簿中是否存在相应的匹配数值,如果找到匹配值则进行下一步的计算,如果没有可能要以某些值代替 。 在这种情况下,我们就可以配合使用多个函数来实现这个目的 。 下面我们通过一个例子进行说明 。
例5:从BOOK2/SHEET1中查找与BOOK1/SHEET1的卡片号相匹配的行,并将该行中“购置日期”列(列标为F)的数值显示在BOOK1/SHEET1的G列中相应的单元格中,要求如果没有找到匹配的数值,则在BOOK1/SHEET1的G列的相应单元格中填写“1996/1/1” 。
我们可以进行如下的操作:
(1)在G2单元格中输入如下的公式:
=IF(ISERROR(MATCH(B2,[BOOK2.XLS]SHEET1!$B$2:$B$1000,0))=FALSE,VLOOKUP(B2,[BOOK2.XLS]SHEET1!$B$2:$F$1000,5,FALSE),“1996/1/1”)
(2)选中G2单元格,将鼠标指针移动至该单元格右下角的黑点处,指针变为小黑十字形状时,按住左键,拖动鼠标至G80单元格,对应的购置日期会在G列中显示出来 。
在上述公式中, ISERROR(MATCH(B2,[BOOK2.XLS]SHEET1!$B$2:$B$1000,0))作为一个逻辑表达式,判断是否在BOOK2/SHEET1的B列中找到匹配的数值,如果结果为FALSE,表明找到匹配的值,进而IF()函数计算VLOOKUP(B2,[BOOK2.XLS]SHEET1!$B$2:$F$1000,5,FALSE),也就是将BOOK2/SHEET1中相匹配的行中F列的内容赋值给G2;若为TRUE,表示没有找到,G2的值为1996/1/1,以此类推 。

推荐阅读