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

作者&投稿:藏李 (若有异议请与网页底部的电邮联系)
~

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

  第一部分:lookup函数用法介绍

  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 找不到 lookup_value,则查找 lookup_vector 中小于或等于 lookup_value 的最大数值。这就是为何返回最后一个满足条件的值的原理。
  第二,如果 lookup_value 小于 lookup_vector 中的最小值,函数 LOOKUP 返回错误值 #N/A。
  利用这个特性,我们可以用=LOOKUP(1,0/(条件),引用区域)这样一个通用公式来作查找引用。

  第二部分:lookup函数实例运用

  运用一:模糊查找

  模糊查找的核心是第二个参数排序必须是升序,否则会导致查找值错误。下图所示的表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函数多条件查找。

  如上图所示,根据“俗称”和“订单号”来查找“订单数”和“尾数”,可以套用这样的公式:=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),就可以得到结果。

  VLOOKUP函数与lookup函数对比:

  第一,在多条件查找方面,就能看出lookup函数好用。用vlookup多条件查找,最简单的方法就是借用辅助列。
  第二, VLOOKUP函数对于反向查找是需要嵌套其余函数才能实现,而LOOKUP函数没有正反之分,因此在这方面LOOKUP函数会更加容易实现。
  第三, vlookup在查找字符方面,可以使用*号类通配符。LOOKUP是不支持通配符的,但可以使用FIND (查找字符,数据源区域)的形式代替。




公司lo怎么复制粘贴表头
excel表中。1、根据查询excel官网得知,在列后输入1.2.3的辅助列,一直到最后一行。2、选中输入的序列,复制,在最后一个数字下边粘贴。3、选中列,点击“数据”选项卡上的“升序”按钮,选择扩展区域,确定。4、排序完成后,在各个姓名下方分别插入了一个空行。5、选中第1行表头,CTRL加C复制,然后...

excel中统计出现次数最多。一列looo行表中填充o到9的自然数。用vBA统计...
代码如下:Option ExplicitSub test() Dim i As Long, mx As Long, tmp As Long, res As Long mx = 0 For i = 0 To 9 tmp = Application.WorksheetFunction.CountIf(Sheets("Sheet1").Range("A:A"), i) '代码是统计Sheet1表A列中出现最多的数,可以根据自己的需要更改...

有关EXCEL中VLOOKUP或LOOKUP函数使用,哪位朋友帮帮忙?感谢!
首先此处VLOOKUP函数必须用精确查找,也就是最后一个参数必须为0或FALSE,不能用1,其次,必须加个辅助列,B列用于提取数据,C列用于求比例。B3输入:=IF(A3="","",VLOOKUP(A3,D:E,2,0))C3输入:=IF(B3="","",B3\/SUM($B$3:$B$100))再一同下拉填充。

EXCEL自定义函数函数显示不用参数
再转入EXCEL中,在单元格内键入如“Test(2)”,回车后你便得到该单元个显示02;或写入“Test("gggt"),会得到0ggt,因为你定义了test函数内的变量为字符型变量,该变量不能为空,如果可以缺省,可以改为:Function Test(optional str As String="LO")

excel中,不同表中相同类别数据如何筛选出
最后一个参数写0是精确查找的意思。 本回答被提问者采纳 菠Lo_嗷呜呜 | 发布于2013-07-17 举报| 评论 3 0 表b中操作,用函数vlookup()在表a中查找,找到就有显示,然后就可以用自动筛选了。 lzxdy | 发布于2013-07-17 举报| 评论 0 0

在EXCEL中如何多条件提取不重复数据。
1.打开要过滤的excel文档,鼠标单击数据区,然后点击菜单栏中【数据】--【筛选】如下图所示。2.点击【高级筛选】。3.在弹出的对话框中,选中【将筛选结果复制到其他位置】,如下图所示。4.勾选【选择不重复的记录】,如下图所示。5.点击如下图图标。6.弹出如下提示框。7.任意点击空白处,即将数据...

如何EXCEL 表格内容只提取几位?
公式=LEFT(RIGHT(B1,2)),最简短的公式,逻辑是先取单元格的最后两位数,然后用left函数取最后两位数的第一位数。公式=MID(A1,LEN(B1)-1,1),最直接的公式,完全按照题面意思从倒数第二位数开始取值,取值宽度为1个数字。公式=REPLACE(REPLACE(B1,1,LEN(B1)-2,),2,1,),看起来挺长,但...

在excel2007中bin range填写格式是什么?
选择“Input Range”和"Bin Range"(Bin Range即每个直方的起点和终点,注意坐标轴的起点应当为Lo-M\/2,Lo为数据集中的最小值,M为最小计量单位。下图中左上方的数据为Input Range,右边的一列数据为Bin Range)

EXCEl中A1是纯大写字母:LOPHATHERI,A2是将A1首字母大写,其他小写的公 ...
复制A2,在A3,右键,选择性粘贴,选择数值,确认。之前先将A3的数据格式改成文本是最好的。

excel中=IF(AND(lt1z3=0,lf1z3=0,lo1z3=0,lf4z3=0,lo4z3=0),0,pm1...
AND(lt1z3=0,lf1z3=0,lo1z3=0,lf4z3=0,lo4z3=0) 意思为如果这些定义的单元格值都为0值,函数AND的意思是"并且","都","同时","全部"这样的意思 =IF(AND(lt1z3=0,lf1z3=0,lo1z3=0,lf4z3=0,lo4z3=0),0,pm1z2)意思为如果条件都符合等于0,则值为0,否则值为pm1z2...

岳池县19642502100: Excel中lookup函数的用法详解 -
直雄艾迪: LOOKUP 函数可从单行或单列区域 (区域:工作表上的两个或多个单元格.区域中的单元格可以相邻或不相邻.)或者从一个数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参...

岳池县19642502100: excel的lookup函数怎么用 -
直雄艾迪: LOOKUP函数有多种用法, =LOOKUP(9E+307,A:A) 返回A列最后一个数值 =LOOKUP("座",A:A) 返回A列最后一个文本 =LOOKUP(1,0/(A1:A100<>""),ROW(1:100)) 返回A列最后一个不为空单元格的行号 =LOOKUP(A2,{0,60,70,80,90},{"不及格","及格","一般","良","优"}) 返回A2分数对应的评定

岳池县19642502100: excel中的lookup函数怎么用 -
直雄艾迪: 1.lookup函数的含义 把数(或文本)与一行或一列的数据依次进行匹配,匹配成功后,然后把对应的数值查找出来. Lookup函数分为向量型查找和数组型查找. 在一列或一行中查找某个值,称为向量型查找. 在数列或数行中查找称为数组型查...

岳池县19642502100: EXCEL中LOOKUP函数如何使用? -
直雄艾迪: 假设你表格的数据如图A列所示 则 B2单元格写入公式 =IF(B$1="","",OFFSET(INDEX($A:$A,MATCH(B$1,$A:$A,)),ROW(A1),,)) 右拉复制公式再下拉复制公式

岳池县19642502100: Excel中的LOOKUP函数是怎样应运的? -
直雄艾迪: VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) Lookup_value为需要在Table_array第一列中查找的数值. 可以为数值、引用或文本字符串.需要注意的是类型必须与 table_array第一列的类型一致. 查找文本时,文本不区分...

岳池县19642502100: EXCEL函数VLOOKUP用法 -
直雄艾迪: VLOOKUP各参数解析:lookup_value:lookup是查找的意思,value是值,就是要查找的值 table_array:“你要到哪去查找这个值?”就在这个table_array的区域里.选定这个区域,公式将在这个区域对lookup_value进行查找 col_index_num:col是...

岳池县19642502100: 求excel 中的lookup函数,hlookup函数的用法以及区别 -
直雄艾迪: 1.LOOKUP函数 LOOKUP函数的功能是返回向量(单行区域或单列区域)或数组中的数值.函数 LOOKUP 有两种语法形式:向量和数组.函数 LOOKUP 的向量形式是在单行区域或单列区域(向量)中查找数值,然后返回第二个单行区域或单...

岳池县19642502100: 请问在excel中,lookup函数是怎么用的?(急急急) -
直雄艾迪: 函数 LOOKUP 有两种语法形式:向量和数组.向量为只包含一行或一列的区域.函数 LOOKUP 的向量形式是在单行区域或单列区域(向量)中查找数值,然后返回第二个单行区域或单列区域中相同位置的数值.如果需要指定包含待查找数值...

岳池县19642502100: 请帮我解释下excel中关于lookup函数的这个公式是什么意思? -
直雄艾迪: 首先0/((Sheet2!A:A=Sheet1!A5)*(Sheet2!B:B=Sheet1!B5) 返回的是一组数列:如果同时满足了2个条件就返回了0即0/1,不满足则返回了#DIV/0!即0/0 其次,由于lookup函数的第2个参数只认升序,所以它在查找的时候只会认最后的一个0,#DIV/0!,前面的会忽略掉而跳过 再而,查找值1是介于0和#DIV/0!之间,返回的结果将是0所对应的值 最后,整个公式的结果就是得到最后一个0所对应的C列的值,即满足条件的最后一个C列值

岳池县19642502100: 如何使用excel中的LOOKUP函数进行查询 -
直雄艾迪: Excel中LOOKUP 函数的用法是:可返回一行或一列区域中或者数组中的某个值. LOOKUP 函数具有两种语法形式:向量型和数组型.矢量形式的 LOOKUP 函数在一行或一列区域(称为向量)中查找值,然后返回另一行或一列区域中相同位...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网