lookup函数=LOOKUP(1,0/($A$1:A6=$A7),$B$1:$B6)得到的是=LOOKUP(1,0/(

一生有你乔乔2022-10-04 11:39:541条回答

lookup函数
=LOOKUP(1,0/($A$1:A6=$A7),$B$1:$B6)
得到的是
=LOOKUP(1,0/({FALSE;FALSE;TRUE;FALSE;TRUE;FALSE}),{0;0;12;21;15;21})

为什么会出来结果是15呢?

已提交,审核后显示!提交回复

共1条回复
摸它 共回答了19个问题 | 采纳率89.5%
首先你得明白自己在干啥……
你的lookup实质上就是在目标数组0/({FALSE;FALSE;TRUE;FALSE;TRUE;FALSE})这个序列中查找匹配1的值,并返回结果数组{0;0;12;21;15;21}中对应位置的值(lookup此时为vector型)
0/FALSE是nan(div/0),而0/TRUE为0.因此整个lookup函数没有任何匹配
此时lookup的规则是:当目标数组中无法找到匹配值时,返回目标数组中不大于查找值的最大值;所以lookup会将0/TRUE作为匹配值返回
而目标数组中有多个0/TRUE,出现如此的重复值匹配时lookup会返回目标数组排序后重复记录的最后一条,在这里就是最后一个0/TRUE对应的位置,即A5在结果数组中对应的值15
1年前

相关推荐

在excel中,如何用lookup函数或者if函数筛选范围值并返回?
在excel中,如何用lookup函数或者if函数筛选范围值并返回?
比如在excel表中:
A列值(顺序)
2014JASDFH
1980DFSDFA
3423523857829
ASDFW
.是由字母和数字组成的数值
我的问题是:我想另起一列B,并判断A列所有数字中一开始的头四个值是否位数字并且要在1900~2014这个区间,如果同时满足条件就返回到相同的行数的B列当中去,请教给位大神这个用excel函数要怎么实现?
比如返回B列为:
2014
1980
兰花草52291年前1
vennybao 共回答了17个问题 | 采纳率94.1%
前4个值为数字,这个数字在1900--2014之间
=IF(ISERR(LEFT(A1,4)*1),"",IF((LEFT(A1,4)*1>=1900)*(LEFT(A1,4)*1
请问IF和LOOKUP函数可以套在一起使用吗?
812581年前1
海南人在ee 共回答了19个问题 | 采纳率78.9%
你在B1处输入
具体的范围和内容就不列了就给个公式
=IF(A1="","",IF(A1>0,LOOKUP(A1,I1:I9,J1:J9)))
=lookup(99,find(C1,A1:A5),A1:A5),还是我,能帮忙解释下lookup函数的应用吗,
无敌laura1年前1
更jjj 共回答了19个问题 | 采纳率89.5%
这个讲起来就复杂了,lookup是一个非常有用的函数,我不能在这里打字全部打完,也不能说我就完全掌握,你可以搜下lookup二分法,网上有人做的动态的流程图的,就是关于其查找的过程和原理,一般来讲,其第二参数升序排列,是最有效率的
比如
=lookup(A1,{0,60,70,80,90},{"不及格","及格","中等","良好","优秀"})
再A1中输入0到100的数字试试看效果,这是最常用的和最经典的用法,自己去看看帮助,理解下