请教大虾,函数=lookup(1,0/(A1:A10000<>""),A1:A10000)是什么意思?尤其是中间第二个参数表达的含义。再者,这个表达方法也好像不符合lookup函数的语法规则吧,但确实求得出想要的结果,求解释呀!
LOOKUP 函数有两种表示方法:
LOOKUP(查找值,查找值对应区间所对应的要返回的值的区间)
LOOKUP(查找值,查找值对应的区间,查找值对应区间所对应的要返回的值的区间)
你举的例属于用的第二个方法。
0/(A1:A10000<>"")就是将A1:A10000中不为空的单元格变为数字0,为空的单元格变为错误值,如下图:
A1:A9<>""得到{TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE}这样一个数组,计算时,TRUE视作1,FALSE视作0
0/(A1:A9<>"")就得到了{0;#NA;0;0;0;#NA;0;#NA;0}这样的数组
公式就变成了
LOOKUP(1,{0;#NA;0;0;0;#NA;0;#NA;0},{"sdf";"";"sdfd";"rtr";"dfg";"";"dfg";"";"d"})根据LookUp的计算规则,就会返回最后一个找到小于查找值(即1)的位置(9),返回对应内容(“d")。
如果将查找值1改为0,则根据二分法原则,会返回接近中间的符合条件的内容,即“dfg"(是第5行的dfg,而不是7行的dfg)