今天来分享一个excel函数会员客户遇到的一个难题。他有好多数据,都需要去返回每列数据中的最小值。但是前提是如果最小值是0或是小于0的话,就要返回大于0的值中的最小值。这个最小值不能小于0. 假设源数据如下: Excel实践者sharpen看到这问题后,首先想到的是如何把小于等于0的值从那列值中去掉。我想到了small这个函数。Small函数的语法结构简单来讲:区域或数组,返回第k个最小。值得注意的是,small函数中的区域或数组中的文本和逻辑值false,true是不参加大小比较的。所以我们可以通过small和if来进行构造。下面的函数涉及到了数组原理。关于数组原理,大家可以搜索我博客关键词数组 搜到一篇详细易懂的数组基础原理分解。 继续讲这个问题,所以我们最后的函数是B2=SMALL(IF(A2:A8>0,$A$2:$A$8),1),最后以数组三键ctrl+shift+enter 进行结束。 简要介绍下这函数公式,if此处是种数组用法,把A2:A8每个值去比较0,大于0就返回本身,否则就返回false。具体的详细运算,可以去抹黑相应的区域,然后按F9进行公式分步分解,最后if这块会得到{FALSE;FALSE;FALSE;0.99;9;5;7}。Small (区域,1)说明返回最小值。也就是我们要的结果0.99 |