这个查找公式如何工作?

我想请你解释为什么这个公式有效: =LOOKUP(2,1/(A2:A10=D2),B2:B10)我知道查找,我知道这个公式是什么(下面的公式searchA2:A10对于在D2中的值的最后一个实例,并返回相应的值从B2:B10 …),但我不明白它是如何工作的。 例如这个部分是做什么的:A2:A10 = D2? 这里是你可以find工作簿的来源: http : //www.xl-central.com/lookup-last-instance.html

 LOOKUP(lookup_value, lookup_vector, [result_vector]) 

LOOKUP函数是HLOOKUP函数和VLOOKUP函数的一个非常基本的表亲。 后两者提供了额外的function,用于select从其table_array参数( row_index_num / col_index_num )返回的数据的行/列以及range_lookup选项,该选项可以在与sorting数据一起使用时强制精确匹配或近似( 最近 )匹配。 如果LOOKUP函数与lookup_vector不相同,则必须指定result_vector (返回行或列),并始终返回最接近的匹配项。

在math上使用Excel时,Excel会将TRUE视为一个,将FALSE视为零。 1除以1将等于1,1除以0#DIV/0! 错误。 A #DIV/0! 错误不会匹配任何东西; 甚至没有#DIV/0! 错误。 既然你正在寻找一个2 ,它发现的东西可能是第2排(如1/1)的最佳匹配,但继续寻找,因为它不是一个完全匹配。 它发现另一个可能的行5,但不断寻找。 它在第8行find另外一个可能,并且在第8行找不到任何远程的东西,所以它从第8行的B列返回值。我们正在寻找匹配第2行和第1行的错误,因为我们想要最近的匹配。

对于所有的意图和目的,当使用这种types的公式时,你会违反规则,因为lookup_vector不是按照升序(通常应该是)。 通过未分类的重复值,我们在寻找一个永远不会find的值的时候,依靠函数的“破坏”行为来实现正确的结果; 例如在一个1的数组中寻找一个2和错误。