这是一个很老的问题,找一找贴子有很多说明的, 我试着说一说,不知是不是能说清。 LOOKUP有两种写法,一种是向量,一种是数组, 这个可以查帮助。这里用的是向量的用法。参数的意思是: LOOKUP(查找值,查找区域,对应的返回区域), 在单行区域或单列区域中查找数值,然后返回第二个单行区域或单列区域中相同位置的数值。 这里要说明的是: 1)查找区要求必须按升序排序 2)如果找不到,则查找返回区域中小于或等于查找值的最大数值。 好!这是基础问题,做一个铺垫,回到你说的问题, =LOOKUP(1,0/(B13=B2:B10),D2:D10) 在这个公式里,重要的是要人为造一个查找区域为我所用, 0/(B13=B2:B10) 这里是构造的关键。 把原区域的实际内容和查找内容进行比对:
[求助]如何查找最新的商品所对应的单价
就会出现{TRUE,FALSE,FALSE,......}这样一列:
[求助]如何查找最新的商品所对应的单价
这不是我们的目的,再把这个求倒,变成 {0,#DIV/0!,#DIV/0!,......}这样一列。
[求助]如何查找最新的商品所对应的单价
而前面的查找值是可以随意的,比如1,2什么的。因为在这样一个0和无效值组成的列值中 它会找到最后一个0,同时返回这个0对应的返回列的数值。 正是因为“如果找不到,则查找返回区域中小于或等于查找值的最大数值。” 在0和无效值组成的这个数列中,它会找区域中最后一个0,返回这个值对应的D列的数。 这就是所说的最新值! 用“公式审核”一步步去体会,就会很清楚了!
|