位置:首页 > 软件操作教程 > 办公软件 > Excel > 问题详情

按条件计算最小值

提问人:周丽平发布时间:2021-07-19

这也是一个经常遇到的问题,就像下面这个图中,要计算班级为乙班,并且性别为女性的最低分数:

image.png

在之前,如果我们要计算符合某个条件的最小值,需要使用数组公式来实现。模式化的数组公式是这样的:

{=MIN(IF((B3:B12="乙班")*(D3:D12="女"),E3:E12))}

注意,这个可是数组公式,需要按Ctrl+Shift+回车来结束公式编辑的。

image.png

现在,只需这样:

=MINIFS(G3:G12,D3:D12,"乙班",F3:F12,"女")

公式的用法类似于SUMIFS函数,第一个参数是需要计算的数据区域,后面是成对的区域/条件。

如果要计算符合条件的最大值,只要把公式中的MINIFS换成MAXIFS就OK了。

下面这个问题,相信大家也遇到过,就是按条件提取名单。

比方说下图中,就是提取班组为“乙班”的所有人员名单,并且在姓名中间用逗号隔开。

image.png

在之前,解决这个问题必须要使用VBA代码完成,这对于大多数普通用户,门槛还是太高了。

现在,只要用下面这个数组公式,就OK了。

{=TEXTJOIN(",",TRUE,IF(D3:D12="乙班",E3:E12,""))}

其中第一个参数是指定的间隔符号,后面这个True,表示忽略空单元格,如果使用FALSE,就是表示包括空单元格。

要简化公式的话,这里的逻辑值也可以省略参数,只使用逗号占位:

{=TEXTJOIN(",",,IF(D3:D12="乙班",E3:E12,""))}

要连接各个单元格的内容,现在也变得如此简单。

只需要输入下面这个数组公式,就可以快速的将D3:F12单元格区域的内容连接到一起,并且使用顿号隔开。

{=CONCAT(D3:F12&"、")}

image.png

之前对于这种问题,大家会使用PHONETIC函数来连接。但是PHONETIC函数比较挑剔,对于公式返回的结果就无能为力了,而且不支持对内存数组进行连接。现在有了CONCAT函数,一切变得那么简单。

继续查找其他问题的答案?

回复(0)
返回顶部