以下是引用chrisfang在2008-6-2 16:04:12的发言:草兄,两点需要说明, 第一点:match查找参数省略,查找小于或等于查找值的最大值,所以查找值如果是6,还是可以找到6。 第二点:其实我用6还是放大了范围,find的结果其实不可能出现2*3的情况,一个数字找到两回,另一个数字最多只能找到一回。所以这个数字设成2足够了。我做的时候由于考虑反正不影响字符,我就顺手放大了,防止意外发生。
=MATCH(6,{#VALUE!,#VALUE!,6,#VALUE!,6,#VALUE!})——特例 找到的是3,而不是5,即不是最后一个满足条件的位置,这个在LOOKUP二分法那个帖子里面是已经明确了的。 我之所以说:对于本例没有错,那是因为不会有2个6,而且,FIND(""产生的1始终在数组的第1个元素位置,因而不可能出现这个错误。 而我提出要用7的原因则是居于MATCH、LOOKUP(1,0/或者LOOKUP(2,1/这种查找最后一个小于第1参数的原理,等于的情况是有特例的。 方兄“精简”“抠门”的思维已渗透到参数去了,呵呵,就像前面说的用100、999之间无字符差别的情况下,仍然“抠门”了,我也很喜欢抠一点。
[此贴子已经被作者于2008-6-2 16:30:53编辑过] |