index(),是返回特定区域,第几行 第几列的值
例如,index(B2:C6,1,1)就是返回B2:C6这个区域,第1行,第1列的值,也就是B2的值。
small(),是返回比较区域中的第n个较小值。
例如small(a1:b3,2)是返回a1:b3,这个区域中的第2个较小值
if()是条件判断,有三个参数,第一个是条件,第二个是如果为真是的值,第三个是如果条件为假时的值。
row()是求行号
其实你这个公式是错误无意义的。简单的事搞的复杂化了。
先从if里面开始,IF($B$1:$B$1000=$J$1,ROW($B$1:$B$1000),4^8),条件是$B$1:$B$1000=$J$1 实际上等同于判断B1=J1,这样写没有意义。
如果为B1=J1,则求ROW($B$1:$B$1000),这样写也没有意义,实际求出来的是B1的行号,结果是1 。如果B1不等于J1,则结果是4的8次方,就是65536。
small(if(),row(a1)) = small(if(),1)
if判断出来,要么等于1,要么等于65536,就只有一个值,再small()也没有意义。
简化以后的结果,如果B1=J1
INDEX(C:C,1),就是C1的值
如果B1<>J1 ,INDEX(C:C,65536),就是C65536的值,
如果是这样的话,直接用一个If()就搞定了。
if(B1=J1,c1,c65536)