不好意思,这么晚了才回帖。
根据公式:=LOOKUP(2,1/(COUNTIF($A$1:A1,Sheet2!$A$2:$A$11)<1),Sheet2!$A$2:$A$11)
我们很难看明白这到底是怎么回事,主要是LOOKUP函数用法比较高深。
这个公式要分为四个部分:
第1部分:=COUNTIF($A$1:A1,Sheet2!$A$2:$A$11)
查找$A$1:A1这个区域的值在Sheet2!$A$2:$A$11这个区域中的个数。
第2部分:COUNTIF($A$1:A1,Sheet2!$A$2:$A$11)<1
对查找到的结果进行判断小于1的,表示就只有1个的存在的,小于1的就等于TRUE,否则为FALSE。
第3部分:1/(COUNTIF($A$1:A1,Sheet2!$A$2:$A$11)<1)
对第2部分得到的结果数组被1除,因为经过第2部分计算后会有TRUE或者有FALSE值存在,而1除以TRUE等于1(因为TRUE=1嘛),而1除以FALSE则等于#DIV/!值(因为FALSE=0嘛)
第4部分:=LOOKUP(2,1/(COUNTIF($A$1:A1,Sheet2!$A$2:$A$11)<1),Sheet2!$A$2:$A$11)
这个部分就比较难理解了。
因为在第1部分中COUNTIF函数的第1个参数是$A$1:A1这个,请注意,前面的A1是使用的绝对引用方式,在进行公式向下填充的时候其位置是不会改变的,而后面的A1是相对引用,它进行填充的时候是会改变位置的(
这点至关重要)。
根据COUNTIF函数查找值不断的变化,得到的结果也在变化,而LOOKUP函数,就会在第3个参数中的数组值里从最后一个值向上面移动得到COUNTIF($A$1:A1,Sheet2!$A$2:$A$11)这个公式中最后一个为零的位置的值(其位置与LOOKUP函数第3个参数相对应)。
这一步可以用公式求值去发现的。
对于LOOKUP函数的用法,实际是用了一种二分法,而这个二分法我在这里也做不了多的解释,原因1:本人对这个二分法理解还不是很透彻的,怕误人子弟;原因2:内容太多了
所以我只能提供一个地址给大家:
原发源地:
http://club.excelhome.net/thread-113915-1-1.html
经过整理的:
http://www.exceltip.net/thread-5109-1-1-48044.html