您当前的位置:首页 > 互联网教程

excel的lookup函数怎么用

发布时间:2025-05-20 17:21:13    发布人:远客网络

excel的lookup函数怎么用

一、excel的lookup函数怎么用

把数(或文本)与一行或一列的数据依次进行匹配,匹配成功后,然后把对应的数值查找出来。

Lookup函数分为向量型查找和数组型查找。

在一列或一行中查找某个值,称为向量型查找。

在数列或数行中查找称为数组型查找。

向量型查找=lookup(lookup_value,lookup_vector,result_vector)

=lookup(查找的值,查找的范围,返回值的范围)

数组型查找= lookup(lookup_value,array)

3.参数lookup_value表示查找的值——它的形式可以是:数字、文本、逻辑值或包含数值的名称或引用。

参数lookup_vector表示查找的范围——只包含一行或一列的区域。

参数result_vector表示返回值的范围——只包含一行或一列的区域,且其大小必须与 lookup_vector(查找的范围)一致。

4.如图所示,根据学号查找面试成绩。向量型查找,

输入公式=LOOKUP(A11,$A$2:$A$8,$E$2:$E$8)。

查找的范围——$A$2:$A$8学号范围。

返回值的范围——$E$2:$E$8面试成绩范围。

5.如图所示,数组型查找,输入公式=LOOKUP(A11,$A$2:$E$8)。

6.lookup函数是一个被大多数人认为只有升序查找功能的“烂函数”。

重要注意点:lookup_vector(查找的范围)中的数值必须按升序排序:-2、-1、0、1、2、...、A-Z、FALSE、TRUE。否则,lookup函数可能会返回错误的结果。

如图所示,输入公式=LOOKUP(B11,$B$2:$B$8,$E$2:$E$8)。根据姓名查找面试成绩,lookup_vector(查找的范围:姓名)是文本,所以不可能升序排序,所以出错。

7.如果 lookup函数中lookup_value(查找的值)小于 lookup_vector(查找的范围)中的最小值,则 lookup函数会返回#N/A错误值。

如图所示,lookup_value=0.4(查找的值)小于 lookup_vector=0.457(查找的范围)中的最小值,所以返回#N/A错误值。

8.如果 lookup函数中的lookup_value(查找的值)在lookup_vector(查找的范围)中找不到,它会默认匹配 lookup_vector中小于或等于 lookup_value的最大值。

如图所示,lookup_value=0.6(查找的值)在lookup_vector(查找的范围)中找不到,返回lookup_vector中小于或等于 lookup_value的最大值(即0.525对应的温度400)。

9.数组型查找的条件:要查找的值位于数组的第一列或第一行,且返回值在该数组的第一列或第一行,可以使用数组型查找lookup函数。不然容易出错。

重要注意点:array(数组)中的数值必须按升序排序。

10.lookup函数的查找方式和hlookup函数,vlookup函数有区别。

hlookup函数——横向查找,在第一行搜索lookup_value。

vlookup函数——纵向查找,在第一列搜索lookup_value。

lookup函数——根据数组的维度进行搜索lookup_value。

如果 array(数组)区域的宽度大于高度(列多于行),则 lookup函数在第一行中搜索 lookup_value。

这时,会出错,lookup函数会返回行或列中的最后一个值。

如图所示,输入公式,array数组的范围列大于行,会出错。

A11行,arrayA2:E3——列多于行,返回最后一个值60。

A12行,arrayA2:E4——列多于行,返回最后一个值69。

A13行,arrayA2:E5——列多于行,返回最后一个值77。

lookup函数和hlookup函数,vlookup函数很想建议结合起来学习。可以观看小编的

二、解析excel中lookup函数的经典查找方式

第一,lookup函数用法介绍;第二,通过实例讲解lookup函数经典的条件查找解法,通用公式基本可以写为:LOOKUP(2,1/(条件),查找数组或区域)或LOOKUP(1,0/(条件),查找数组或区域)。

lookup函数和vlookup函数是excel中最常用的两个查找函数。vlookup函数能做到的lookup函数同样可以做到,而且可以做得更好。

LOOKUP函数有两种语法形式:向量和数组。本期就向量形式的展开交流和探讨。

向量形式的语法为:LOOKUP(lookup_value,lookup_vector,result_vector)

Lookup_value:为所要查找的数值。Lookup_value可以为数字、文本、逻辑值或包含数值的名称或引用。

Lookup_vector:为只包含一行或一列的区域。Lookup_vector的数值可以为文本、数字或逻辑值。Lookup_vector的数值必须按升序排序:...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE,否则, LOOKUP不能返回正确的结果。文本不区分大小写。

Result_vector:只包含一行或一列的区域,其大小必须与 lookup_vector相同。

比如lookup(A1,B1:B10,C2:C11),其中C2:C11的尺寸要与B1:B10相同,且如果A1对应B列中的位置是B2的话,那么返回的将是C3的值。

第一,如果函数 LOOKUP找不到 lookup_value,则查找 lookup_vector中小于或等于 lookup_value的最大数值。这就是为何返回最后一个满足条件的值的原理。

第二,如果 lookup_value小于 lookup_vector中的最小值,函数 LOOKUP返回错误值#N/A。

利用这个特性,我们可以用=LOOKUP(1,0/(条件),引用区域)这样一个通用公式来作查找引用。

模糊查找的核心是第二个参数排序必须是升序,否则会导致查找值错误。下图所示的表1是按升序排序的,表2没有排序。

分别在表1和表2下面对应的单元格输入公式。

表1的数据源是按升序排序的,根据lookup函数用法:=LOOKUP(要查找的数据,查找范围,结果),在C24单元格设置公式:=LOOKUP(B24,$B$5:$B$17,$C$5:$C$17),然后下拉得到正确结果。

表2的数据源是没有排序的,在J24单元格输入公式:=LOOKUP(I24,$I$5:$I$17,$J$5:$J$17),然后下拉,发现J25单元格得到的结果是H126,显然不对。通过表2的源数据可以看到I25单元格对应的值应该为J8单元格的值H142。

为什么会出错呢?这就印证了第一部分的用法介绍中所讲到的:Lookup_vector的数值必须按升序排序:...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE,否则, LOOKUP不能返回正确的结果。文本不区分大小写。

模糊查找,数据源一定要以升序先进行排序,否则就会出错。在数据源没有排序的情况下,如何才能查找到正确结果?LOOKUP函数有一个经典的条件查找解法,可以很好的解决此问题。

在第一部分有提到,通用公式基本可以写为:LOOKUP(2,1/(条件),查找数组或区域)或LOOKUP(1,0/(条件),查找数组或区域)。

公式中的2、1、0等数字的含义是什么?首先,条件是一组逻辑判断的值或逻辑运算得到的由TRUE和FALSE组成或者0与非0组成的数组,因而:0/(条件)的作用是用于构建一个由0或者#DIV!0错误组成的值。比如数据源中能查找到对应值就是ture,没有就是false。形式如:0/True=0,0/false=#DIV0!,查找到就0,没有就是错误值。

如果 LOOKUP函数找不到 lookup_value(即:1),则它与 lookup_vector中小于或等于 lookup_value的最大值(即:0)匹配。

也就是说,要在一个由0和#DIV!0组成的数组中查找1,肯定找不到1,因而将返回小于或等于1的最大值(也就是0)匹配。用大于0的数来查找0,肯定能查到最后一个满足条件的。

以上的原理,被俗称为“以大欺小法”。这种技巧在LOOKUP函数上的运用是很常见的。

利用上面的原理,不管有没有排序,只要使用上面的“以大欺小法”都能得到正确结果。比如上面实例中,在J25单元格输入公式:=LOOKUP(1,0/(I25=$I$5:$I$17),$J$5:$J$17),就可以了。

第一,查找的数据没有对应值,可以利用ISNA(ISERROR)函数屏蔽错误值。

如上图所示,表3是数据源,在下面左边根据“番号”查找“俗称”。单击C51单元格,输入公式=LOOKUP(1,0/(B51=$B$42:$B$45),$C$42:$C$45),然后下拉可以看到下面的C52和C54单元格出现错误值。这种情况可以利用ISNA(ISERROR)函数屏蔽错误值。

只要在公式外面嵌套个if(isna(lookup(),"",lookup()),这样的形式就可以把错误值屏蔽。在H51单元格,输入这样的公式:=IF(ISNA(LOOKUP(1,0/(G51=$B$42:$B$45),$C$42:$C$45)),"",LOOKUP(1,0/(G51=$B$42:$B$45),$C$42:$C$45)),下拉,就可以屏蔽错误值了。将错误值屏蔽了,表格就好看多了。

上面公式中,"",是显示空的意思,错误就显示空,没有就查找。

第二,借助错误值来判定产品是否存在。

下图所示根据左边的数据源,来判定右边对应的数据是否在番号列中。

只需要嵌套一个isna函数就可以做到,如果没有存在就错误,有存在就......这样的形式。在H62单元格输入公式:=IF(ISNA(LOOKUP(1,0/(G62=$B$62:$B$74))),"否","是"),下拉就即可得出结果。

“图啥”网友问:iserror与isna函数的区别。ISNA只屏蔽#N/A错误,ISERROR屏蔽所有错误。

如上图所示,根据“俗称”和“订单号”来查找“订单数”和“尾数”,可以套用这样的公式:=LOOKUP(1,0/(条件(1)*(2)*(3).。。。。。),引用区域),用*或&将各个条件连接起来,*就是和的意思。

第一,在K112单元格输入公式:=LOOKUP(1,0/(($I112=$B$112:$B$120)*($J112=$C$112:$C$120)),D$112:D$120),复制公式就可以得到结果。

第二,另外也可以使用这个公式:=LOOKUP(1,0/($I112&$J112=$B$112:$B$120&$C$112:$C$120),D$112:D$120)

按照上图所示,根据左边的数据源,来对含有某个字符进行查找。单击G128单元格,输入公式:=LOOKUP(1,0/(FIND($F128,$B$128:$B$131)),B$128:B$131),就可以得到结果。

第一,在多条件查找方面,就能看出lookup函数好用。用vlookup多条件查找,最简单的方法就是借用辅助列。

第二, VLOOKUP函数对于反向查找是需要嵌套其余函数才能实现,而LOOKUP函数没有正反之分,因此在这方面LOOKUP函数会更加容易实现。

第三, vlookup在查找字符方面,可以使用*号类通配符。LOOKUP是不支持通配符的,但可以使用FIND(查找字符,数据源区域)的形式代替。

三、EXCEL中lookup函数怎么用

1、先给你大概讲一下,看完这个,你在excel里面点F1,输入VLOOKUP,你可以看到更详细的例子

2、本文介绍 Microsoft Excel中 VLOOKUP函数(函数:函数是预先编写的公式,可以对一个或多个值执行运算,并返回一个或多个值。函数可以简化和缩短工作表中的公式,尤其在用公式执行很长或复杂的计算时。)的公式语法和用法。

3、您可以使用 VLOOKUP函数搜索某个单元格区域(区域:工作表上的两个或多个单元格。区域中的单元格可以相邻或不相邻。)的第一列,然后返回该区域相同行上任何单元格中的值。例如,假设区域 A2:C10中包含雇员列表,雇员的 ID号存储在该区域的第一列,如下图所示。

4、如果知道雇员的 ID号,则可以使用 VLOOKUP函数返回该雇员所在的部门或其姓名。若要获取 38号雇员的姓名,可以使用公式=VLOOKUP(38, A2:C10, 3, FALSE)。此公式将搜索区域 A2:C10的第一列中的值 38,然后返回该区域同一行中第三列包含的值作为查询值(“黄雅玲”)。

5、VLOOKUP中的 V表示垂直方向。当比较值位于所需查找的数据的左边一列时,可以使用 VLOOKUP而不是 HLOOKUP。

6、VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])VLOOKUP函数语法具有下列参数(参数:为操作、事件、方法、属性、函数或过程提供信息的值。):

7、lookup_value必需。要在表格或区域的第一列中搜索的值。lookup_value参数可以是值或引用。如果为 lookup_value参数提供的值小于 table_array参数第一列中的最小值,则 VLOOKUP将返回错误值#N/A。

8、table_array必需。包含数据的单元格区域。可以使用对区域(例如,A2:D8)或区域名称的引用。table_array第一列中的值是由 lookup_value搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。

9、col_index_num必需。table_array参数中必须返回的匹配值的列号。col_index_num参数为 1时,返回 table_array第一列中的值;col_index_num为 2时,返回 table_array第二列中的值,依此类推。

10、小于 1,则 VLOOKUP返回错误值#VALUE!。

11、大于 table_array的列数,则 VLOOKUP返回错误值#REF!。

12、range_lookup可选。一个逻辑值,指定希望 VLOOKUP查找精确匹配值还是近似匹配值:

13、如果 range_lookup为 TRUE或被省略,则返回精确匹配值或近似匹配值。如果找不到精确匹配值,则返回小于 lookup_value的最大值。

14、要点如果 range_lookup为 TRUE或被省略,则必须按升序排列 table_array第一列中的值;否则,VLOOKUP可能无法返回正确的值。

15、有关详细信息,请参阅对区域或表中的数据进行排序。

16、如果 range_lookup为 FALSE,则不需要对 table_array第一列中的值进行排序。

17、如果 range_lookup参数为 FALSE,VLOOKUP将只查找精确匹配值。如果 table_array的第一列中有两个或更多值与 lookup_value匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值#N/A。

18、在 table_array的第一列中搜索文本值时,请确保 table_array第一列中的数据不包含前导空格、尾部空格、非打印字符或者未使用不一致的直引号('或")与弯引号(‘或“)。否则,VLOOKUP可能返回不正确或意外的值。

19、有关详细信息,请参阅 CLEAN函数和 TRIM函数。

20、在搜索数字或日期值时,请确保 table_array第一列中的数据未存储为文本值。否则,VLOOKUP可能返回不正确或意外的值。

21、如果 range_lookup为 FALSE且 lookup_value为文本,则可以在 lookup_value中使用通配符(问号(?)和星号(*))。问号匹配任意单个字符;星号匹配任意字符序列。如果要查找实际的问号或星号,请在字符前键入波形符(~)。