|
这个公式,使用了lookup与countif两个函数并嵌套使用。
1、countif(参数1,参数2),意思是统计在参数1区域中,有参数2的个数。一般参数1是数组或某一区域,参数2是单个值。但在这个公式中,参数2是一组区域(不是单个值或文本),所以返回结果就成了一个数组值(而不是单个值)。有几个注意的地方:
A、参数1(C$1:C1)是动态的,也就是第2个C1的行未锁定,这样可以随着公式下拉而相应增加行(把上个公式返回的结果也加进来了),且第1个是从第1行开始的。
B、countif返回的结果要减1,目的是为其变为0,然后再作为除数的分母,最终返回错误(让lookup好忽略)。如果不减1,就恰恰相反了。
C、最后把减的结果,作为分母,再用1去除,让原来有1再减1后为0的都变为错误,为lookup忽略之用。
三步结果为lookup的第2参数。
2、lookup(搜索值,搜索区域,返回值的区域),作用是在“搜索区域”(参数2)中”搜索值“(参数1),返回“返回值的区域”(参数3)相同位置的值。如果搜不到,则返回小于或等于该搜索值(参数1)的最大值;其中错误忽略(这正是上面的B步骤故意功效)。
这里搜索值9参数1)就是0,搜索区域(参数2)就是countif的返回结果,返回区域A2:A10(参数3)。显示参数2是没有0的,则匹配小于或等于0的(-1)的最大的那个所在行的值。
最后,若加一个容错函数则就更完美:
C2=IFERROR(LOOKUP(,1/(COUNTIF(C$1:C1,A$2:A$10)-1),A$2:A$10),""),下拉公式。
|
评分
-
1
查看全部评分
-
|