添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

欢迎关注我的公众号:Smilecoc的杂货铺

在Excel中有sumif,countif等函数可以实现求特定条件下数值的加总和计数,那么如何在一个或多个条件下求出此时的最大值或者最小值呢?

其实sumif函数和countif函数实际上都是可以由sum/count+if函数通过数组实现的,所以求特定条件下的最大/小值也可以使用同样的方法。同时maxifs函数已经可以在office365和office 2019中使用了,具体可以参见: https://support.office.com/zh-cn/article/MAXIFS-%e5%87%bd%e6%95%b0-dfd611e6-da2c-488a-919b-9b6376b28883 ,如果使用的是这两个版本的office可以直接使用

求最大值:

(1)单条件

如果只有一个条件,例如需要求同一类别下的最大的数量,

可以参照以下公式即可:

=MAX(数字值区域*条件1)

=MAX(IF(条件区域=条件1,数字值区域)

现在需要找到每一个类别下的最大值,输入公式=MAX(($A 2 : C$8)),因为里面涉及到数组的计算,所以要让公式生效,必须三键同时按下:Ctrl+Shift+Enter。结果如下图 所示:

注意这里的相对引用和绝对引用,如果条件是在固定的单元格需要使用绝对引用(加上$符)

(2)多条件

如果是多条件的求最大值呢?可以参照以下公式:

=MAX(数字值区域 条件1 条件2…)

=MAX(IF((条件区域1=条件1)*(条件区域2=条件2)…,数字值区域)

如图所示,如果要求每个城市,每个类别中的最大值,需要在目标单元格内输入公式:=MAX(($A

一个有趣的点:

=MAX(数字值区域 条件1 条件2…)这类型的公式改为MIN后就不可用了,而=MAX(IF((条件区域1=条件1)*(条件区域2=条件2)…,数字值区域)直接改为MIN是可行的,那么原因是什么呢?

大家可以尝试将公式改为MIN(数字值区域 条件1 条件2…),会发现返回最小值全部都是0。

这是因为=MAX(数字值区域 条件1 条件2…)这一个公式相当于每一个数组中的元素都是和另外的一个数组中的元素相乘的,当不满足条件时返回false,而false乘以任何数字都会得到0,所以在判断最小的值的时候0是最小的值。

而=MAX(IF((条件区域1=条件1) (条件区域2=条件2)…,数字值区域)的IF((条件区域1=条件1) (条件区域2=条件2)…,数字值区域)函数保证了不满足条件时返回false(if函数没有第三参数时默认返回false),全部满足条件后返回数字值,min函数会忽略错误值,从而就可以返回真正的最小值了

个人公众号:Smilecoc的杂货铺,欢迎关注!
在这里插入图片描述

欢迎关注我的公众号:Romi的杂货铺在Excel中有sumif,countif等函数可以实现求特定条件下数值的加总和计数,那么如何在一个或多个条件下求出此时的最大值或者最小值呢?其实sumif函数和countif函数实际上都是可以由sum/count+if函数通过数组实现的,所以求特定条件下的最大/小值也可以使用同样的方法。同时maxifs函数已经可以在office365和office 201... // 数组的 slice 和 splice 分别是:纯函数和不纯的函数 // slice 返回数组中的指定部分,不会改变原数组 // splice 对数组进行操作返回该数组,会改变原数组 let numbers = [1,2,3,4,5]; //纯函数 console.log(numbers.slice(0,3));//[1,2,3] console.log(numbers.slice(0,3));//[1,2,3] console.log(numb..
在对access数据库进行数据查询的时候要注意,where后面的条件要加单引号:select * from 故障记录 where 故障现象代码='F001'多条件查询实现的代码如下:string sql = "select * from 故障记录 where"; if(textBox_machine.Text!="") sql += " 机器编号=" + ...
In (SELECT [全称] FROM [New14] As Tmp GROUP BY [全称],[账号],[银行] HAVING Count(*)>1 And [账号] = [New14].[账号] And [银行] = [New14].[银行]) 转载于:https://www.cnblogs.com/CodeGear/p/10516665.html...
wait、notify和notifyAll方法是Object类的final native方法。所以这些方法不能被子类重写,Object类是所有类的超类,因此在程序中有以下三种形式调用wait等方法。 wait();//方式1: this.wait();//方式2: super.wait();//方式3 Object.wait()和Object.notify()和Object.notifyall()必须写在synchronized方法内部或者synchronized块内部,这是因为:这几个方法要.