Excel精英培训网

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

[已解决]lookup 函数问题

[复制链接]
发表于 2012-7-31 10:03 | 显示全部楼层 |阅读模式
lookup函数困惑,详见附件
最佳答案
2012-7-31 15:08
对楼主的lookup(1,0/ )和lookup(0,0/ )的问题的分析,请大家拍砖:

未命名.jpg

在公式=LOOKUP(1,0/(C5:C10=B12),D5:D10)中,进入编辑栏选中0/(C5:C10=B12)这部分按F9计算出结果,可以看到里面有三个0。

按照lookup 的语法,结果是返回小于等于查找值的最大值。

当使用的是lookup(1,0/ )的时候,返回的是最后一个0对应的值,而使用lookup(0,0/ )时,根据二分法查找过程,得到的是分段过程中符合查找结果所对应的值(也就是中间的0,很有可能是分段查找就符合条件了),未必是最后一个值。

所以只有一个符合条件时,那么两个写法都可以使用,结果都是正确的。不只一个符合条件记录的时候,两个的不同就显示出来了。

至于二分法的查找机理,倒不一定非要搞个清楚,在实际应用当中,知道上述的区别也够用了。

新建 Microsoft Office Excel 工作表.zip

12.5 KB, 下载次数: 31

发表于 2012-7-31 10:19 | 显示全部楼层
本帖最后由 hwc2ycy 于 2012-7-31 10:29 编辑

公式1:利用了模糊匹配的技巧,因为条件为假的时候值为FALSE,0/0就报错了。这样只有条件为真的时候0/1返回值是数字0。

公式2: =LOOKUP(9^9,--LEFT(B41,ROW(INDIRECT("1:"&LEN(B41)))))
你原来的公式中row(1:len(b41)),这个写法有误,1是个常量,而len(b41)是个函数返回值。
所以如果要把这两个连接起来引用,然后再用INDIRECT函数返回由文本字符串指定的引用。
回复

使用道具 举报

发表于 2012-7-31 10:42 | 显示全部楼层
公式2中的第一参数也还需要改一下:
  1. =LOOKUP(9e+307,--LEFT(B41,ROW(INDIRECT("1:"&LEN(B41)))))
复制代码
回复

使用道具 举报

发表于 2012-7-31 10:44 | 显示全部楼层
还有sheet1中,字符在公式中要这样写"A",不能直接写A。
row(1:len(b41))这样的写法,估计公式都不能输入吧。
建议楼主从基础学起。
回复

使用道具 举报

发表于 2012-7-31 11:18 | 显示全部楼层
LOOKUP基本原理是2分法,先去了解下2分法吧
回复

使用道具 举报

发表于 2012-7-31 12:14 | 显示全部楼层
本帖最后由 罗达 于 2012-7-31 12:16 编辑

推荐帅老师的公式,自己照着改:
         -lookup(,-left(a1,row($1:$20)))
该公式用于数字在最前面的字符串取前面的数字出来。
回复

使用道具 举报

发表于 2012-7-31 15:08 | 显示全部楼层    本楼为最佳答案   
对楼主的lookup(1,0/ )和lookup(0,0/ )的问题的分析,请大家拍砖:

未命名.jpg

在公式=LOOKUP(1,0/(C5:C10=B12),D5:D10)中,进入编辑栏选中0/(C5:C10=B12)这部分按F9计算出结果,可以看到里面有三个0。

按照lookup 的语法,结果是返回小于等于查找值的最大值。

当使用的是lookup(1,0/ )的时候,返回的是最后一个0对应的值,而使用lookup(0,0/ )时,根据二分法查找过程,得到的是分段过程中符合查找结果所对应的值(也就是中间的0,很有可能是分段查找就符合条件了),未必是最后一个值。

所以只有一个符合条件时,那么两个写法都可以使用,结果都是正确的。不只一个符合条件记录的时候,两个的不同就显示出来了。

至于二分法的查找机理,倒不一定非要搞个清楚,在实际应用当中,知道上述的区别也够用了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 19:06 , Processed in 1.070520 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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