各位大家好,我是Excel归故乡,上一期给大家讲解了多个独立条件汇总计数的问题,但是这些条件都是在独立的单元格的。后面就用粉丝朋友提问,如果这些独立的条件不在单独的单元格,而是在同一个单元格,又该怎么办?这个时候问题就变成了下图第二个案例所示:
此时我们如果直接把单元格作为条件去匹配,那肯定是不行的,因为内容格式都无法满足COUNTIFS函数的要求,所以结果肯定是0,这里我们不再演示,大家可以自行试一下直接把条件单元格作为COUNTIFS函数的条件,看看结果。
我们还是先分析思路:第一步肯定是想如何标记出属于这个单元格条件的记录来。我们先用辅助列来试一下能不能给属于条件单元格的内容做一个标记。我们仍然考虑用COUNTIFS函数来做。但是我们观察到,记录中的姓名是包含在条件单元格中的,所以我们就不能按照常规思路还把条件单元作为COUNTIFS函数的条件,这里我们反其道而行之,把条件单元格作为条件区域,具体什么意思呢,请看下图:
但是显然这样也是无法做出标记的,因为B列中姓名没有与M2单元格相同内容,拿第一个单元格来说就是“张三丰”与M2单元格中内容不相同,因此无法计数,结果为0。怎么办呢,我们可以联想一下之前讲到的通配符,如果我在B2单元格前后都加上一个星号,那B2单元格的内容就变成了“*张三丰*”,这个时候是不是利用通配符原理,第一个单元格就可以被计数出来,从而打上标记1了。公式=COUNTIFS(M$2,"*"&B2&"*")请看下图示例:
我们发现B列属于M2的单元格就被打上了标记1,我们是不是把辅助列做一个求和就可以得到属于M2单元格的单元格个数了。分析完思路我们接着思考怎么把刚刚的步骤组合起来,放到一条公式中完成。
第一步,我们需要一次性把符合条件的单元格打标签。上面我们是一个个单元格进行的,如果我们把公式中的B2换成B列的区域,是不是就可以一次性打上标签了,此时公式变成=COUNTIFS(M2,"*"&B$2:B$82&"*"),注意这和上期讲的一样是一个数组公式,需要三键结束。我们来用F9看看结果:
我们可以看到通过这条公式,已经生成了我们辅助列的内容,那最后是不是与之前操作方式一样,用SUM函数把这些1和0加起来,就得到了分别满足条件的记录数之和。
公式:=SUM(COUNTIFS(M2,"*"&B$2:B$82&"*"))
通过以上的思路分析,公式构造,就实现了我们想要的效果,是不是咋一看觉得很难,但是通过我们一步步思路分析之后,觉得其实也不难。其实我们函数的学习有两个难点,第一个就是基础知识的掌握,你必须要有比较广的函数记忆,这样在思路解析的时候你才知道用什么公式去才能实现这一步;第二就是思路,这个就需要大家多去拆解一些复杂公式来分析思路,还有就是自己实际多多运用了!
以上就是本期的全部内容,原创不易,请大家多多支持,期待与大家互相学习,共同进步!