Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5704|回复: 27

[已解决]求教l一个lookup的公式

[复制链接]
发表于 2014-2-10 20:51 | 显示全部楼层 |阅读模式
本帖最后由 969341591 于 2014-2-10 22:55 编辑

做练习时遇到一个lookup的公式,"=LOOKUP(1,0/(B9:B12=B15),E9:E12)",主要是第一个参数0,第二个参数用0除数组看不懂望能详细解释.谢谢!
QQ截图20140210204354.png Book1.rar (4 KB, 下载次数: 16)
发表于 2014-2-10 21:04 | 显示全部楼层
本帖最后由 josonxu 于 2014-2-10 21:06 编辑

lookup精确查找用法    0/   是把B9:B12=B15   得到的false 必成错误值    true变成零     lookup查找会忽略错误值的   返回符合条件的最后一个值  

点评

其实就是巧妙避开排序问题。。。  发表于 2014-2-10 21:49
亲,把头像给换了吧。晚上看到挺吓人滴。  发表于 2014-2-10 21:09

评分

参与人数 1 +10 收起 理由
冠军欧洲2010 + 10 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-2-10 21:17 | 显示全部楼层
josonxu 发表于 2014-2-10 21:04
lookup精确查找用法    0/   是把B9:B12=B15   得到的false 必成错误值    true变成零     lookup查找会忽略 ...

那第一个参数呢,为什么是"1"?
回复

使用道具 举报

发表于 2014-2-10 21:24 | 显示全部楼层
  1. =LOOKUP(1,0/(B9:B12=B15),E9:E12)
复制代码
这个正是lookup精确查找的办法
0/(B9:B12=B15)的结果会返回b9:b12中等于15的话结果为true,否则为false,用0除的话只有结果为true的才会返回0,其他均返回错误,lookup查找会忽略错误值,这样的话查找小于等于1的最大值就只有0(O除b9:b12中等于B15的话结果为true),对应的位置(第几个)在e9:e12的值就是需要查找的值
其实公式可以改为
  1. =LOOKUP(,0/(B9:B12=B15),E9:E12)
复制代码
回复

使用道具 举报

发表于 2014-2-10 21:33 | 显示全部楼层
969341591 发表于 2014-2-10 21:17
那第一个参数呢,为什么是"1"?

这就涉及到lookup函数的用法了,在查找列查找小于等于1的最大值,返回对应列的结果
语法LOOKUP(lookup_value, lookup_vector, result_vector)LOOKUP 函数向量形式语法具有以下参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。)
  • lookup_value    必需。LOOKUP 在第一个向量中搜索的值。Lookup_value 可以是数字、文本、逻辑值、名称或对值的引用。
  • lookup_vector    必需。只包含一行或一列的区域。lookup_vector 中的值可以是文本、数字或逻辑值。
要点   lookup_vector 中的值必须以升序排列:...,-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE。否则,LOOKUP 可能无法返回正确的值。大写文本和小写文本是等同的。
  • result_vector    必需。只包含一行或一列的区域。result_vector 参数必须与 lookup_vector 大小相同。
根据上述,公式可以修改为
  1. =lookup(0,0/b9:b12=b15),e9:e12)
复制代码
  1. =lookup(,0/b9:b12=b15),e9:e12)
复制代码
(0省略写法)



点评

•result_vector 必需。只包含一行或一列的区域。result_vector 参数必须与 lookup_vector 大小相同。 这个是微软帮助错误。。。RESULET只要给定查找的方向即可。如果之单个单元格默认为横向查找。  发表于 2014-2-12 06:08
这种写法属于错误写法。凑巧的情况下正确而已。。  发表于 2014-2-12 06:07
回复

使用道具 举报

发表于 2014-2-10 21:34 | 显示全部楼层
第一参数为1的话公式可写为
  1. =lookup((大于等于1的数),1/b9:b12=b15),e9:e12)
复制代码
回复

使用道具 举报

发表于 2014-2-10 21:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 josonxu 于 2014-2-10 21:42 编辑
969341591 发表于 2014-2-10 21:17
那第一个参数呢,为什么是"1"?

看我的公式  =LOOKUP(1,{0;#DIV/0!;#DIV/0!;#DIV/0!;0;0},{"wo";"e";"r";"r77";"wo4";"wo7777rr"})   
用1在{0;#DIV/0!;#DIV/0!;#DIV/0!;0;0}   在这里查最大的1个数  
lookup 会自己默认  第二参数{0;#DIV/0!;#DIV/0!;#DIV/0!;0;0}  是升序排列     就是说它会认为最后一个 0 是最大值   
lookup在第二参数找不到查找的值 时会返回 第二参数小于等查找值得的数
应为  忽略错误值  所以{0;#DIV/0!;#DIV/0!;#DIV/0!;0;0}  = 便于理解看成这个 {0;0;0}  
第三参数 便于理解你看成这个{"wo";"wo4";"wo7777rr"}
再根据lookup 会自己默认  第二参{0;0;0}  是升序排列     就是说它会认为最后一个 0 是最大值   
lookup在找不到查找的值 时会返回  小于等查找值得的数  即最后一个0  最后返回 wo7777rr
(点个最佳答案吧)
回复

使用道具 举报

发表于 2014-2-10 21:48 | 显示全部楼层
还没明白吗楼主
回复

使用道具 举报

发表于 2014-2-10 21:53 | 显示全部楼层
josonxu 发表于 2014-2-10 21:37
看我的公式  =LOOKUP(1,{0;#DIV/0!;#DIV/0!;#DIV/0!;0;0},{"wo";"e";"r";"r77";"wo4";"wo7777rr"})   
用 ...


楼主需要懂得lookup的二分法查找办法才行,要不的话很难理解的
是否需要详细解释一下二分法的查找步骤?
回复

使用道具 举报

发表于 2014-2-10 22:05 | 显示全部楼层
tgydslr 发表于 2014-2-10 21:53
楼主需要懂得lookup的二分法查找办法才行,要不的话很难理解的
是否需要详细解释一下二分法的查找步骤 ...

所以我没提 二分法  故意回避  不然他会  晕的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-26 05:56 , Processed in 0.276254 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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