查找函数遇到难题要求根据A18单元格的商品名称,查找该商品的最新单价,即该商品最后一条记录的单价.但是:不能使用按ctrl+shift+enter三键结束的数组公式.
查找函数遇到难题
要求根据A18单元格的商品名称,查找该商品的最新单价,即该商品最后一条记录的单价.
但是:不能使用按ctrl+shift+enter三键结束的数组公式.
2楼
而且只能用函数,不能用VBA,所以有点麻烦!
回复
3楼
把它导到ACCESS里。
回复
4楼
在网上看到一篇,给你写了个公式:=LOOKUP(1,0/($B$6:$B$14=$A$18),$D$6:$D$14)
回复
5楼
谢谢你了,这个是对的,只是不太懂这个函数。
我用求值看看了看计算过程!
$B$6:$B$14=$A$18-->{"A";"B";"A";"B";"C";"D";"A";"B";"B"}
{"A";"B";"A";"B";"C";"D";"A";"B";"B"}-->{TRUE;FLASE;TRUE;FLASE;FLASE;FLASE;TRUE;FLASE;FLASE}-->....
反正 没大看得懂!
回复
6楼
我也没看得懂!
回复
7楼
思考了一下,=LOOKUP(1,0/($B$6:$B$14=$A$18),$D$6:$D$14)公式解释如下:
lookup()涵数
用途:在表格或数值数组的首行查找指定的数值,并由此返回表格或数组当前列中指定行处的数值。
($B$6:$B$14=$A$18)为数组的二维引用,所以计算结果为一数组,{TRUE;FLASE;TRUE;FLASE;FLASE;FLASE;TRUE;FLASE;FLASE}
在EXCEL中数组的表达是这样的,单元格在竖向用";",在横向用",",而0/(数组),计算结果也为数组;
{0;#div/0!;0;#div/0!;#div/0!;#div/0!;0;#div/0!;#div/0}
所在上述公式也可改为: =LOOKUP(true,$B$6:$B$14=$A$18,$D$6:$D$14)
上述公式中,至于查找1时为何结果会显示正常,我也没弄懂,不知哪位朋友可以解释下.
回复
8楼
个人理解:lookup函数在查找数组中的对象时,使用模糊方式,即近似匹配时,当其查找结果没有时,将返回最后一个查找的单元格的行,而在查找中,对错误值是不进行查找的,所以,上述公述使用时,当查找1时找不到,也能返回正确结果,因为我们要查找的就是最后一个.所以当我们把查找1改为其它数值时,也不影响最终的查找结果.
如,=LOOKUP(10,0/($B$6:$B$14=$A$18),$D$6:$D$14)与=LOOKUP(1,0/($B$6:$B$14=$A$18),$D$6:$D$14)的结果是一样的.
说明:{a},数组中的a为常量,常量可以是文本,数字,逻辑值,或是错误值.
回复
9楼
但是我把10改为0也可以得出正确答案
回复
10楼
是呀,有点搞不懂!
回复