Excel函数问题

请教大虾,函数=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)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-23
找出A1:A10000中最后一个不为空的单元格
其中A1:A10000<>""表示A1:A10000不为空的数组,返回true或者false,即1或0
0/(A1:A10000<>"")来判断是否有效,(除数不能为0)
然后再查找
第2个回答  2014-02-23
把A2的值分成4个区域,返回相应值{0,0.05,0.1,0.15}再乘以它本身

当A2的值在0至10000间时取0 , 即0<A2<10000时,返回0(以上公式返回值0*A2=0)
当A2的值在10000至30000间时取0.5, 即10000<=A2<30000时,返回0.05(以上公式返回值0.05*A2)
当A2的值在30000至50000间时取0.15,即30000<=A2<50000时,返回0.1(以上公式返回值0.1*A2)
当A2的值大于等于50000时,即A2>=50000,返回.0.15(以上公式值0.15*A2)
相似回答