这个公式组合了large、if、countif函数,其中IF函数起到了什么作用呢?countif函数又有什么特殊效果。
首先if函数是一个逻辑判断函数,根据公式中的if函数表达式“IF($A$2:$A$38=E2,$B$2:$B$38)”。
它的含义是当A列的数据等于E2到的值,则返回B列的数据。
而这个地方我们需要看到if函数的一个特性,即当A列数据不等于E2的值的时候,它会返回一个逻辑值false。
从数据表可以看出,if函数表达式的结果肯定是包含了两组不同的结果值,一组是false,另一组则是符合条件返回的数据值。
我们按下快捷键来解析if函数表达式的预览结果:
通过if函数我们得到了一个包含逻辑值和数值的数组区域。
此时我们便可以利用large函数忽略逻辑值的特性,来对这个数组区域内的数值进行大小排序。
那我们就要来看看第2参数countif函数表达式的含义了:COUNTIF($E$2:E2,E2)
这是条件计数函数countif的常规表达,表示列表区域$E$2:E2包含E2的值的单元格个数。
大家注意一个要点,在countif函数的第1参数列表区域中,使用了单元格区域的混合引用,即首个单元格为绝对引用,结尾单元格则是相对引用。
这个写法,与row函数的作用有点类似,它会通过下拉填充公式时,得到一个动态扩展的区域结果。也就是将,当填充公式到E6单元格时,其表达式中的列表区域则等于“$E$2:E6”。
所以当countif函数的第1参数列表区域发生了变化,其计数结果也会相应变动。
最后,需要注意三键运行公式,才能得到正确结果。
我们填充一下公式,看看最后的排序效果:
三、多个关键字的查找引用
关于多个关键字的查询引用,则可以利用“vlookup if{1,0}”的固定套路来写公式。
完整公式为:=VLOOKUP(E2&F2,IF({1,0},$A$2:$A$38&$B$2:$B$38,$C$2:$C$38),2,0)
这里作者不再详述该公式的含义,大家可以参照作者专栏《excel100个常见场景可套公式》中关于该段内容的讲解。
最后,我们再来看下使用排序功能,进行自定义条件排序的操作,如下动图所示: