公式中的组合拳-万金油公式
前言
万金油公式是一套高能组合数组公式,应用了INDEX函数,MIN或SMALL函数,以及IF判断函数,ROW函数,可以返回一列数组中的不重复值或查找多个满足条件的值。
1列出不重复项
C2=INDEX(A:A,MIN(IF(COUNTIF(C$1:C1,$A$2:$A$100)=0,ROW($A$2:$A$100),65536)))&""
然后按CTRL+SHIFT+ENTER三键结束
下拉复制公式。
这里的100可以根据你的行数适当调整,可以比你的行数适当大一些,以便于后期增加数据时,不用修改公式
这里的65536也可以调整为其他一个较大的数值,起码要比你的总行数要大。
解释:
首先:在C列当前单元格上面的所有区域中,查找A列所有值的个数,如果个数为0,说明没查到,则返回他的行号,如果数量大于0,说明是重复的,返回一个较大值,这些返回值形成一个数组。
然后:从数组中查找最小值,即最小的不重复的行号
最后:从A列中,检索出该行号对应的数值
在公式的最后有个&””,是为了把结果为0的转换成空值。
2列出多个满足条件的值
F2=INDEX(A:A,SMALL(IF($A$1:$A$100=$E$1,ROW($A$1:$A$100),65536),ROW(A1)))&""
然后按CTRL+SHIFT+ENTER三键结束
下拉复制公式。
G2=INDEX(B:B,SMALL(IF($A$1:$A$100=$E$1,ROW($A$1:$A$100),65536),ROW(A1)))&""
然后按CTRL+SHIFT+ENTER三键结束
下拉复制公式。
这里的100可以根据你的行数适当调整,可以比你的行数适当大一些,以便于后期增加数据时,不用修改公式
这里的65536也可以调整为其他一个较大的数值,起码要比你的总行数要大。
解释:
首先:在A列中查找符合条件的数值,如果符合,则返回他的行号,否则返回一个较大值,这些返回值形成一个数组。
然后:从数组中查找第几个最小的数,ROW(A1)会随下拉变成ROW(B1),从而实现第一个最小的,第二个最小的,这些数值指的是符合条件的行号。
最后:从A列中,检索出该行号对应的数值
在公式的最后有个&””,是为了把结果为0的转换成空值。
总结
数组函数虽然复杂,不容易理解,但只要勤于思考,多动手,你就会逐渐理解其中的奥妙。
END