麻烦高手帮我分析一下这条excel公式
这是一对多的查找公式套路,俗称万金油公式(度娘万金油公式,有很详细的介绍)
我们先将此公式简化分解,一层层去看就容易理解了
最外层INDEX是主体函数,第一参数就是我们要查询并返回的数据区域,第二参数要返回的数据在查询区域的位置,本例是一个单列区域,所以位置就是数据所在行数
第二参数由SMALL构造的一个公式,而SMALL函数根据IF判断生成的一个数组返回满足条件的行数,IF起到一个控制的功能(即判断满足条件);
ROW(A1)函数,这个是返回A1单元格所在的行号,也就是1,当整个公式下拉填充之后,就可以得到ROW(A2)、ROW(A3)。。。。也就产长一个1,2,3,4。。。。一个自然数序列构成的数组
因为是数组公式,公式输入完成要按ctrl+shift+enter三键
运算给过程是首先if语句判断条件,也就是判断A2:A11区域,如果等于D2,就返回对应的所在行号,不相等的话,就返回4^8,即65536,这就构建了一个满足条件时的行数与不满足条件时65536组成的数组;外层再用small(数组,row(a1))返回第一小的数,当向下填充时small(数组,row(a2))就返回第二小的数,以此类推,依次返回第三小的数。。。。在此可能有同学就会问65536是啥意思,在较古老版本excel中最大行数就是65536行(新版本已超过10W行),一般情况下最后一行是不会存在数据的,所以返回的结果也会是空值;最后用INDEX和行数返回相应的查询值;最后的小尾巴&""是将返回值转化为文本,避免0值,所以当你要返回的数据里有数值或者日期值,或者其他自定义格式时,数据就都会被打回原形
图片看不清楚呢,能发一个大点图片吗?