求一列中满足条件的最大最小值
最近碰到一个求最小值的问题,今天和大家分享一下。如下图:
想求张三的几次成绩的最高分和最低分。
我们先来看看最高分,这里大家先别往下看,想想如果是你,你怎么做?
我一开始是这么做的:
注意由于公式含有数组,需要用Ctrl+Shift+Enter三键结束。这么做完全没毛病。然后根据这个思路去求最低分,小编反手就是一个类似的公式:
然后发现傻眼了,结果为0,并不是我们想要的45。看来脑子热的时候不能干任何事哈哈。分析了一下,用这个公式得到的结果永远是0,因为那些不是张三的,经过数组公式的运算之后,全部都是0,这点我们可以按F9键把min函数参数部分运行一下看看:
所以最小值肯定是0了。显然这个方法只适合求最大值,不适合求最小值。经过摸索,得到下面的这个最优解了:
为什么这个公式可以呢,因为此公式对于不是张三的,其对应的成绩不再是0,而是逻辑值False,我们可以通过F9键把min函数参数部分运行一下看看:
到这里,有朋友可能会问了,False不就是代表0吗?为啥min函数不能识别呢?这个问题问得好,此时我们需要看看min函数的几个常用特性了:
1、参数可以是数字、空白单元格、逻辑值或表示数值的文字串。如果参数中有错误值或无法转换成数值的文字时,将引起错误。
2、如果参数是数组或引用,则函数 MIN 仅使用其中的数字、数组或引用中的空白单元格,逻辑值、文字或错误值将忽略。如果逻辑值和文字串不能忽略,请使用 MINA 函数 。
3、如果参数中不含数字,则函数 MIN 返回 0。
通过分析上面的3个特点,我们应该可以释然了,所以求最大值我们也可以借助这个方法:
1种方法。本案例需要对数组的知识要有初步的了解。
总结一下,本案例中,求某一列符合条件的最大值有2种方法,求最小值有1种方法。本案例需要对数组的知识要有初步的了解。