ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 61893|回复: 64

[分享] 学习了LOOKUP与VLOOKUP的区别!

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-5-25 17:38 | 显示全部楼层 |阅读模式
昨天领导找我,干了2小时的查找粘贴,没保存上,气死领导了。于是把我叫下去,说我计算机好,让我解决,晚上还得给另一个boss送出去,我就干呗!其实我就是三脚猫的功夫,比我们这行的大多数人用EXCEL稍微聪明点而已!
于是乎,我看了看那个file,嗯,不难,编个宏(因为最近才把这个又捡回来,把原来需要2小时的工作缩短到20分钟,效率提高不少,呵呵!),然后就座那琢磨,编好了,调试好了,开始!用的是最简单的循环语句+条件语句。
我的那个神啊,慢的哟!因为需要比对的数据很多,>50,000行,找130条信息花了半个小时,得得,先交差了,回家先!
回家后越想越不爽,太没效率了,我就开始搜,学习,查找新的方法。
今天断断续续查到了一些方法,盯到VLOOKUP函数上,捣鼓了一阵子,始终没搞定,只怪技不如人啊,后来继续搜,找到了LOOKUP函数,可以说,到此为止,芝麻开门了!
我先回家,一会接着说神奇的事!!!

希望看了下面两个例子后能够掌握这两个函数的基本用法。

[ 本帖最后由 woxuyao_cn1 于 2011-5-25 23:25 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-25 19:39 | 显示全部楼层
我回来了,总之今天白天基本上除了干正事,其他时间都是在想这个了,中午突然来到坛子里,通过搜索,到了这个帖子:
http://club.excelhome.net/viewth ... p;extra=&page=1
4楼的大侠jyhxr,给力的很,我用在我的file里,爽,解决了,虽然不是很明白,但是先解决问题先,后来优化了一下那个template,给领导发过去了,然后再简单教他怎么用,搞定,呵呵,领导是赞不绝口,希望啥时候能长点工资啊!
后来我又在琢磨这个LOOKUP和VLOOKUP区别,就找到了一个解释,也是搜出来的,这里分享给大家原文,后面是链接,感谢那个lz啊,谢谢!

图我省了,主要是为了看对比介绍,如果感兴趣,可以到原链接查看!

Excel查询函数中,Lookup和Vlookup有哪些区别?它们在应用中应该如何把握?请看本文讲解。

  ★Lookup——数与行列比

  Lookup的工作职责是什么呢?用一个数与一行或一列数据依次进行比较,发现匹配的数值后,将另一组数据中对应的数值提取出来。

  ·工资税率表:用数值比较

  根据不同的工资进行不同的税率计算是一个常见的应用。我们来看这张“工资税率查询”表(见图1)。现在要在右侧根据“收入”(F列),直接得到对应的“税率”(G列)。在计算第1个“税率”时,输入函数公式“=LOOKUP(F4,$B$3:$B$8,$D$3:$D$8)”,回车,便可得到“36.00%”。



  这个结果是怎么来的?用F4中的第1个收入数“$123,409”,与左侧表的“收入最低”各档数据(“$B$3:$B$8”)进行对比,虽然“$123,409”在“收入最低”各档数中没有完全一致的数据与之匹配,但是会与其中小于它的最大数“$58,501”相匹配。这样,同一行对应的“36.00%”就提取出来了。

  ·图书销售表:用文本比较

  Lookup函数的对比数还可以是文本。在这张图书销售查询表中(见图2),用下表输入的“编号”(A15单元格)文本当作查询数,与上表的“编号”一列($A$3:$A$11)进行对比,查询到了匹配的文本后,将“教材名称”一列($B$3:$B$11)对应的数据提取出来。公式是“=LOOKUP(A15,$A$3:$A$11,$B$3:$B$11)”。



  ★Vlookup——数与表格比

  Lookup有一个大哥——Vlookup函数。两兄弟有很多相似之处,但大哥本领更大。Vlookup用对比数与一个“表”进行对比,而不是Lookup函数的某1列或1行,并且Vlookup可以选择采用精确查询或是模糊查询方式,而Lookup只有模糊查询。

  ·模糊匹配

  用Vlookup函数进行模糊查询时,几乎与Lookup的作用完全一致。我们用Vlookup函数来提取第1个例子中的工资税率结果。函数公式为“=VLOOKUP(F4,$B$3:$D$8,3,TRUE)”。

  在这个函数中,用第1个收入“$123,409”(F4单元格)当作对比数,用它与左侧表(“$B$3:$D$8”)的第1列数进行对比,虽然“$123,409”在“收入最低”各档数中没有完全一致的数据与之匹配,但是函数的最后一个参数是“TURE”(“TURE”就是模糊查询),所以它会与其中小于它的最大数“$58,501”相匹配。并将表中第3列(函数的第3个参数为“3”)对应的数据提取出来,所以结果同样是“36.00%”。

  ·订单明细表:精确匹配

  有时候,我们需要精益求精。在下面这个“订单明细表”(见图3)中,最后一列“货运费用”中的数据要通过“交货方式”从左侧“配送公司收费表”中进行匹配查询。这是一个典型的精确查询的例子,计算第1个数据的函数公式是“=VLOOKUP(H3,$B$2:$D$6,3,FALSE)”。



  小提示:

  把最后一个参数从“TRUE”变更成“FLASE”,就是精确匹配。而精确查询,就是查询数要与查询表第1列中的数据完全一致才能匹配提取,否则结果返回错误值“#N/A”。

  点评:

  Excel为我们提供了近20个有关“查找和引用”的函数,除了最常用的Lookup、Vlookup,还有Choos、Row、Colum、Index和Match等,大家可以通过函数的帮助查看具体的功能。这些函数往往不是单独使用,可以与其他函数和Excel中的一些功能进行配合。

-

资料引用:http://www.knowsky.com/390819.html

[ 本帖最后由 woxuyao_cn1 于 2011-5-25 19:41 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-25 19:44 | 显示全部楼层
刚才又找到一个介绍,感觉更明白些,希望自己能够尽快学到有用的东西,提高自己,也分享给感兴趣的人,共勉!

要在表格中查找某一行的数据,然后返回其他列的信息,很多人都选择用VLOOKUP。 不过VLOOKUP还是有一定限制的,比如查找值必须在第一列,只能有一个条件等。

如果你需要查找的数据不在第一列,或有多于一个条件,要使用VLOOKUP,只能改变表格的排列,或在第一列增加辅助列。

实际上我们可以通过LOOKUP查找,这样,既不需要查找列在第一行,也可以做多条件查找:

    同时符合所有条件:  LOOKUP(1,1/((条件1)*(条件2)*(条件3)*...),结果范围)

    只需符合一个条件:  LOOKUP(1,1/sign((条件1)+(条件2)+(条件3)+...),结果范围)


A B
1 编号 项目
2 1001 A
3 1002 B
4 1003 C

比如说我们要在右表中找出书名是“A”的书号。

如果通过VLOOKUP,我们要么把A,B列互换,要么在A列前面加一列等于B列数据。

用LOOKUP查找就不用更改表格的格式,我们可以直接用公式:

=LOOKUP(1,1/($B$2:$B$4="A"),$A$2:$A$4)

LOOKUP的语法是:LOOKUP(查找值,查找数组,结果数组), 上面的公式就是说在1/($B$2:$B$4="A")里找到“1”,返回对应$A$2:$A$4的值。

我们在下面的表格分析一下数组1/($B$2:$B$4="A"):

A B 数组中个元素公式 数组中个元素结果
1 编号 项目   
2 1001 A =1/($B$2="A")=1/1 1
3 1002 B =1/($B$3="A")=1/0 #DIV/0!
4 1003 C =1/($B$4="A")=1/0 #DIV/0!

实际上,查找数组只能返回“1”或“#DIV/0!”。如果符合条件(="A"),就返回“1”;不符合条件,就出现错误“#DIV/0!”。 在这个数组查找“1”,就会返回符合条件的第1个数组元素(第2行)的“1001”了。


要做多条件查询,只需要把条件都放在第一个数组的分母就可以了。

比如,我们要在表格中找出分类是“甲”,项目是“B”的编号:

=LOOKUP(1,1/(($B$2:$B$6="甲")*($C$2:$C$6="B")),$A$2:$A$6)

如果我们要在表格中找出分类是“甲”或者项目是“B”的编号:

=LOOKUP(1,1/sign(($B$2:$B$6="甲")+($C$2:$C$6="B")),$A$2:$A$6)

A B C =1/
(($B$2:$B$6="甲")
*($C$2:$C$6="B")) =1/
sign(($B$2:$B$6="甲")
+($C$2:$C$6="B"))
1 编号 分类 项目   
2 1001 甲 A =1/(($B$2="甲")
*($C$2="B"))
=1/(1*0)=1/0
=#DIV/0! =1/sign(($B$2="甲")
+($C$2="B"))
=1/sign(1+0)=1/1
=1
3 1002 甲 B =1/(($B$3="甲")
*($C$3="B"))
=1/(1*1)=1/1
=1 =1/sign(($B$2="甲")
+($C$2="B"))
=1/sign(1+1)=1/1
=1
4 1003 甲 C =1/(($B$4="甲")
*($C$4="B"))
=1/(1*0)=1/0
=#DIV/0! =1/sign(($B$2="甲")
+($C$2="B"))
=1/sign(1+0)=1/1
=1
5 1004 乙 A =1/(($B$5="甲")
*($C$5="B"))
=1/(0*0)=1/0
=#DIV/0! =1/sign(($B$2="甲")
+($C$2="B"))
=1/sign(0+0)=1/0
=#DIV/0!
6 1005 乙 B =1/(($B$6="甲")
*($C$6="B"))
=1/(0*1)=1/0
=#DIV/0! =1/sign(($B$2="甲")
+($C$2="B"))
=1/sign(0+1)=1/1
=1

使用上面的公式查找,符合条件的应该只有1项,如果多于1项,结果就会变得不可预测。所以查找前最好先用SUMPRODUCT计算符合条件的个数(参考多条件加总和多条件计数)

另外可以用下面的公式返回最后一个记录:

    同时符合所有条件:  LOOKUP(2,1/((条件1)*(条件2)*(条件3)*...),结果范围)

    只需符合一个条件:  LOOKUP(2,1/sign((条件1)+(条件2)+(条件3)+...),结果范围)

由于在查找数组中只可能出现1和#DIV/0!,要找2肯定是找不到的,所以会返回最接近2又小于2的最后一个数,就是数组里最后一个“1”,这样等于是返回符合条件的最后一行。(参考查找符合条件的最后一笔交易)

原文地址是:http://wenwen.soso.com/z/q259668813.htm

TA的精华主题

TA的得分主题

发表于 2011-7-16 20:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-7-24 18:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢楼主,好帖子,学习了

TA的精华主题

TA的得分主题

发表于 2011-7-24 18:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-7-24 19:02 | 显示全部楼层
本帖最后由 blzyj 于 2012-3-11 21:36 编辑

学习成果斐然,把故事进行到底{:soso_e113:}

TA的精华主题

TA的得分主题

发表于 2011-7-24 19:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习了

TA的精华主题

TA的得分主题

发表于 2011-7-27 03:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-7-27 05:54 | 显示全部楼层
原帖由 woxuyao_cn1 于 2011-5-25 19:44 发表
刚才又找到一个介绍,感觉更明白些,希望自己能够尽快学到有用的东西,提高自己,也分享给感兴趣的人,共勉!

要在表格中查找某一行的数据,然后返回其他列的信息,很多人都选择用VLOOKUP。 不过VLOOKUP还是有一定 ...

谢谢楼主分享!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-23 00:21 , Processed in 0.048134 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表