Excel LookUp函数的使用方法,包含基本、多条件与近似查找及简称查找全称实例

亮术网 2019-10-25 本网原创

在 Excel 中,LookUp函数分为向量形式和数组形式,其中向量形式用于在一列或一行中查找,数组形式用于在数组或多列多行中查找。向量形式可以有三个参数,数组形式只能有两个参数,一般来说,用数组形式时可以考虑用VLookUp函数或HLookUp函数。

LookUp函数的使用方法分为基本使用方法、多条件查找、近似查找和根据简称查找全称,其中多条件查找可查找满足两个以上条件的值,若要根据多条件查找,常常用LookUp函数而不用VLookUP函数,一方面便于写条件,另一方面执行效率高。

 

一、Excel LookUp函数语法

(一)向量形式

1、表达式:=LOOKUP(Lookup_Value, LookUp_Vector, [Result_Vector])

中文表达式:=LOOKUP(查找值, 查找区域, [返回结果区域])

 

2、说明:

A、参数 LookUp_Vector 是只能包含一行或一列的区域,并且数值必须按升序排列,否则可能返回不正确的值。

B、参数 Result_Vector 为可选项,也是只能包含一行或一列的区域,并且必须与参数 LookUp_Vector 大小相同。

C、如果在查找区域找不到查找值,则LookUp函数将返回查找范围中小于或等于查找值的最大值。如果查找值小于查找范围中的最小值,LookUp函数将返回 #N/A 错误值。

 

(二)数组形式

表达式:=LOOKUP(Lookup_Value, Array)

中文表达式:=LOOKUP(查找值, 数组)

 

2、说明

(1)如果在数组中找不到查找值,则LookUp函数将返回数组中小于或等于查找值的最大值;如果查找值小于第一行或第一列(由数组维度确定)中的最小值,LookUp函数将返回 #N/A 错误值。

 

(2)LookUp函数的数组形式与VLookUp函数和HLookUp函数的区别:VLookUp函数在第一列中搜索查找值,HLookUp函数在第一行中搜索,而 LookUp函数则根据数组维度搜索,具体情况如下:

A、如果数组列数大于行数,例如 {1,3,5;2,4,6},LookUp函数将在第一行中搜索查找值。

B、如果数组行数大于等于列数,例如 {1,3;2,4;8,10},LookUp函数将在第一列中搜索查找值。

C、使用VLookUp函数和HLookUp函数,可以通过索引向下搜索或遍历搜索,而LookUp函数始终选择行或列中的最后一个值;因此,如果用LookUp函数的数组形式,建议选用VLookUp函数或HLookUp函数。

(3)数组中的数值也必须按升序排列,否则可能返回不正确的值。

 

 

二、Excel LookUp函数的使用方法一:向量形式

(一)数值必须按升序排列与在查找区域找不到查找值(查找近似值)的实例

1、假如要根据价格查找销量。选中 A11 单元格,输入查找值 80,双击 B11,把公式 =LOOKUP(A11,D2:D8,E2:E8) 复制到 B11,按回车,返回 892;框选 D2:D8,选择“数据”选项卡,单击“升序”图标,在打开的“排序提醒”窗口中选择“扩展选定区域”,单击“确定”,则每行按“价格”升序排列,B11 中的数值也变为 528;操作过程步骤,如图1所示:

Excel LookUp函数的使用方法

图1

2、说明:

公式 =LOOKUP(A11,D2:D8,E2:E8) 中,A11 为查找值,D2:D8 为查找区域,E2:E8 为返回结果区域;第一次返回 892,是不正确的返回值,因为LookUp函数要求数值必须按升序排序,把价格按升序排序后,返回正确的查找值 528,因为如果找不到查找值,LookUp函数将返回查找范围中小于或等于查找值的最大值(即近似值),79.9 正是这样的值。

 

(二)查找值小于查找范围中的最小值,返回 #N/A 错误值实例

服装最低价格为 38.8,假如要找价格为 35 的服装销量。选中 A11 单元格,输入 35,双击 B11,把公式 =LOOKUP(A11,D2:D8,E2:E8) 复制到 B11,按回车,返回 #N/A 错误值;操作过程步骤,如图2所示:

Excel LookUp函数查找值小于查找范围中的最小值,返回 #N/A 错误值实例

图2

 

(三)找不到值返回最后一行的实例

1、假如要在“产品名称”中查找没有的名称“红色T恤”并返回服装销量。双击 A11 单元格,输入“红色T恤”,再双击 B11,把公式 =LOOKUP(A11,B2:B8,E2:E8) 复制到 B11,按回车,返回 897;操作过程步骤,如图3所示:

Excel LookUp函数找不到值返回最后一行的实例

图3

2、“产品名称”中没有“红色T恤”,LookUp函数将返回查找范围中小于或等于查找值的最大值(即近似值),即返回“粉红长袖衬衫”对应的销量 329。汉字按每个字拼音字母排序,“红”拼音的首字母为 h,“粉”拼音的首字母为 f,在 26 个字母中,f 在 h 前;由于 B 列以“粉”开头有三个,因此继续比较第二个字的拼音首字每,它们第二个字都是“红”,再继续比较第三个字的拼音首字母,B6 中的“衬”首字母为 c,B7 中“短”首字母为 d,B8 中的“长”(在这里 Excel 把它读为 Zhang)z,c < d < z,因此“粉红长袖衬衫”排在最后。

 

 

三、Excel LookUp函数的使用方法二:数组形式

(一)查找范围为数组(列数大于行数)的实例

1、选中 A1 单元格,把公式 =LOOKUP(3,{2,3,5;8,10,15}) 复制到 A1,按回车,返回 10,操作过程步骤,如图4所示:

Excel LookUp函数查找范围为数组(列数大于行数)的实例

图4

2、公式 =LOOKUP(3,{2,3,5;8,10,15}) 查找值为 3,查找范围为数组;由于数组的列数大于行数,所以在第一行查找,找到后返回对应列的 10。

 

(二)查找范围为单元格(行数大于等于列数)的实例

1、双击 A11 单元格,输入“黑色T恤”;再双击 B11,把公式 =LOOKUP(A11,B2:E8) 复制到 B11,按回车,返回 982;双击 B11,把 E8 改为 E4,按回车,返回“白色长袖衬衫”;操作过程步骤,如图5所示:

Excel LookUp函数查找范围为单元格(行数大于等于列数)的实例

图5

2、公式 =LOOKUP(A11,B2:E8) 的查找范围为 B2:E8,属于行数大于列数的情况,在第一列查找,在 B8 中找到,然后返回最后一列(即 E 列)对应的值 982;公式 =LOOKUP(A11,B2:E4) 的查找范围为 B2:E4,属于行数等于列数(即4行4列)的情况,也在第一列查找,由于没有找到,所以返回最后一行的值。

 

 

四、Excel LookUp函数的使用方法三:扩展应用

(一)多条件查找

1、假如要查找“分类”为“女装”与价格为 82 的服装名称。双击 A11 单元格,输入“女装”,选中 B11,输入 82,双击 C11,把公式 =LOOKUP(1,0/((C2:C8=A11)*(D2:D8=B11)),B2:B8) 复制到 C11,按回车,返回“粉红短袖衬衫”,操作过程步骤,如图6所示:

Excel LookUp函数多条件查找

图6

 

2、公式 =LOOKUP(1,0/((C2:C8=A11)*(D2:D8=B11)),B2:B8) 说明:

A、C2:C8=A11 为条件,C2:C8 以数组形式返回 C2 到 C8 的数据,即 {"女装";"男装";"女装";"女装";"女装";"男装;"女装""};执行时,首先从数组中取出第一个元素“女装”,它等于 A11(女装),返回 True,第二次从数组中取出第二个元素“男装”,它不等于 A11,返回 False;其它的以此类推,最后返回 {TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE}。

B、同理 D2:D8=B11 返回数组 {FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE},则 (C2:C8=A11)*(D2:D8=B11) 变为 {TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE}*{FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE},把两个数组对应元素相乘,相乘时 True 被转为 1、FALSE 被转为 0,最后返回 {0;0;0;1;0;0;1}。

C、则 0/((C2:C8=A11)*(D2:D8=B11)) 变为 0/{0;0;0;1;0;0;1},依次用 0 除以数组中的每一个元素,最后返回{#DIV/0;#DIV/0;#DIV/0;0;#DIV/0;#DIV/0;0}。

D、则公式变为 =LOOKUP(1,{#DIV/0;#DIV/0;#DIV/0;0;#DIV/0;#DIV/0;0},B2:B8),接着在数组中查找 1,由于数组中没有 1,所以返回小于等于 1 的最大值,即返回 0,又因为LookUp函数是选择符合条件的最后一个值,因此找到第二个 0(即 D6),最后返回 D8 对应的 B 列中的产品名称 B8,即“绿色T恤”。

提示: 查找范围为 C 和 D两列,它们必须按升序排序,具体请参考《Excel排序的11个实例,含多条件、按单元格与字体颜色、图标、单列、整个表格及如何用快捷键与按行排序》一文。

 

(二)近似查找

1、假如要根据平均分返回每个学生的评定。双击 I2 单元格,把公式 =LOOKUP(H2,{0,60,70,80,90;"不及格","及格","中","良","优"}) 复制到 I2,按回车,返回第一个学生的评定“良”;选中 I2,把鼠标移到 I2 右下角的单元格填充柄上,双击左键,返回剩余学生的评定;操作过程步骤,如图7所示:

Excel LookUp函数近似查找

图7

 

2、公式说明:

公式 =LOOKUP(H2,{0,60,70,80,90;"不及格","及格","中","良","优"}) 的查找范围是一个 5 列 2 行的数组;当查找 H2(85.3)时,由于在第一行中找不到,所以选择小于等于 85.3 的最大值,即选择 80,然后返回与 80 对应的第 4 列的值“良”;其它的以此类推。

 

(三)根据简称查找全称

1、假如要根据供应商简称查找供应商全称。当前工作表为“供应商”,单击“进货表”切换到该表,双击 D2 单元格,把公式 =IFERROR(LOOKUP(1,0/FIND(B2,供应商!A$2:A$7),供应商!A$2:A$7),"") 复制到 D2,按回车,返回 B2 的全称;选中 D2,把鼠标移到 D2 右下角的单元格填充柄上,双击左键,则返回剩余服装的供应商全称;操作过程步骤,如图8所示:

Excel LookUp函数根据简称查找全称

图8

 

2、公式 =IFERROR(LOOKUP(1,0/FIND(B2,供应商!A$2:A$7),供应商!A$2:A$7),"") 说明

A、“供应商!A$2:A$7”中“供应商”是工作表名称,A$2 表示对列相对引用对行绝对引用,往下拖时,列和行都不变,即 A2 不会变为 A3、A4、……;A$7 与 A$2 是一个意思;A$2:A$7 以数组形式返回 A2 至 A7 中的数据,即 {"广州丽新服装有限公司";"东莞祥宇服装生产有限公司";"广州瑞月服装生产有限公司";"深圳恒兴服装制作有限公司";"深圳尚洁服装有限公司";"广州润莱服装生产有限公司"}。

B、则 FIND(B2,供应商!A$2:A$7) 变为 FIND(B2,{"广州丽新服装有限公司";"东莞祥宇服装生产有限公司";"广州瑞月服装生产有限公司";"深圳恒兴服装制作有限公司";"深圳尚洁服装有限公司";"广州润莱服装生产有限公司"}),B2 为“东莞祥宇”,用 Find 在数组中查找 B2,找到的返回 1,没找到的返回值错误 #VALUE!,最后返回 {#VALUE!;1;#VALUE!;#VALUE!;#VALUE!;#VALUE!}。

C、则 0/FIND(B2,供应商!A$2:A$7) 变为 0/{#VALUE!;1;#VALUE!;#VALUE!;#VALUE!;#VALUE!},再用 0 除以数组中每个元素,最后返回 {#VALUE!;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!}。

D、则公式变为 =IFERROR(LOOKUP(1,{#VALUE!;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!},供应商!A$2:A$7),""),接着用 LookUp 在数组中查找 1,同样没找到选择小于等于 1 的最大值,即选择 0(即“供应表”的 A2)。

E、IfError函数用于错误处理,如果 LookUp 返回错误,则返回空值,否则返回 LookUp 的返回值。