查找函数遇到难题
hhzjxss
hhzjxss Lv.12
2007年04月03日 14:37:15
来自于水利软件
只看楼主

查找函数遇到难题要求根据A18单元格的商品名称,查找该商品的最新单价,即该商品最后一条记录的单价.但是:不能使用按ctrl+shift+enter三键结束的数组公式.

查找函数遇到难题

要求根据A18单元格的商品名称,查找该商品的最新单价,即该商品最后一条记录的单价.

但是:不能使用按ctrl+shift+enter三键结束的数组公式.



1175582233164.jpg

b45b737fad9fff4e5de5.rar
0 B
立即下载
免费打赏
hhzjxss
2007年04月03日 16:11:43
2楼
而且只能用函数,不能用VBA,所以有点麻烦!
回复
tcmjxh123
2007年04月03日 21:00:01
3楼
把它导到ACCESS里。
回复
mazhiyong2005
2007年04月03日 23:26:37
4楼
在网上看到一篇,给你写了个公式:=LOOKUP(1,0/($B$6:$B$14=$A$18),$D$6:$D$14)
回复
hhzjxss
2007年04月04日 08:07:01
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}-->....

反正 没大看得懂!
回复
山水之间
2007年04月04日 10:34:06
6楼


我也没看得懂!
回复
mazhiyong2005
2007年04月04日 12:53:16
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时为何结果会显示正常,我也没弄懂,不知哪位朋友可以解释下.

回复
mazhiyong2005
2007年04月04日 19:56:52
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为常量,常量可以是文本,数字,逻辑值,或是错误值.
回复
abncdd
2007年04月05日 09:32:32
9楼
但是我把10改为0也可以得出正确答案
回复
hhzjxss
2007年04月07日 08:34:06
10楼
是呀,有点搞不懂!
回复

相关推荐

APP内打开