[Excel]复杂条件关系下的单元格计数法

[Excel]复杂条件关系下的单元格计数法_第1张图片

“小伙伴们可能都知道,Excel中COUNTIF函数是用以单条件单元格计数,而COUNTIFS函数则是用以多条件且必须同时满足(AND逻辑)的单元格计数。但若需要针对复杂逻辑条件的单元格计数时,我们又有什么法子呢?

多条件计数之"OR"

[Excel]复杂条件关系下的单元格计数法_第2张图片

这可能是简单的一种多条件逻辑关系,那就是"或"——只需要满足多个条件中的一种即可。

方法一:COUNTIF+COUNTIF

[Excel]复杂条件关系下的单元格计数法_第3张图片

要实现此种逻辑关系计数的最简单方式就是讲COUNTIF相加。

比如:
=COUNTIF(A2:A11,"苹果")+COUNTIF(A2:A11,"草莓")
当然,你也可以选择使用:
=COUNTIF(A2:A11,F1)+COUNTIF(A2:A11,F2)
虽然此法特别易懂,但是如果条件非常多,那么整个函数可能会显得特别繁琐。这时,可能会更适合以下的方法。

方法二:COUNTIF配合数组

[Excel]复杂条件关系下的单元格计数法_第4张图片

如果条件很多,可以考虑将条件以数组的形式体现在COUNTIF函数中,这样可以快速简化繁琐的COUNTIF叠加。比如,
=SUM(COUNTIF(A2:A11,{"苹果","草莓","橙子"}))
不过要注意的是,如果COUNTIF函数中的条件部分是以一个区域进行表达的,那么要使用Ctrl + Shift +Enter来完成函数计算哦!
比如,

[Excel]复杂条件关系下的单元格计数法_第5张图片

{=SUM(COUNTIF(A2:A11,F1:F3))}

方法三:SUMPRODUCT函数

[Excel]复杂条件关系下的单元格计数法_第6张图片

事实上,利用SUMPRODUCT函数进行多条件计算火箭君已经给大家具体讲过了。

多条件计数之"OR-AND"

[Excel]复杂条件关系下的单元格计数法_第7张图片

当多条件之间出现不止一层逻辑关系时,比如说:

  • 第一层:满足“苹果”或“香蕉”或“ 草莓”
  • 第二层:满足“签收”

方法一:COUNTIFS+COUNTIFS+...

[Excel]复杂条件关系下的单元格计数法_第8张图片

和COUNTIF函数在处理单一层次多条件的情况类似,COUNTIFS函数也会使得函数变得相对繁琐。表达式:
=COUNTIFS(A2:A11,"苹果",C2:C11,"签收")+COUNTIFS(A2:A11,"草莓",C2:C11,"签收")+COUNTIFS(A2:A11,"橙子",C2:C11,"签收")

方法二:COUNTIFS配合数组

[Excel]复杂条件关系下的单元格计数法_第9张图片

COUNTIFS配合上数组之后,显然就大大缩短了函数的长度。尤其是如果条件的层次更多之后,这种效果更为明显。
表达式:
=SUM(COUNTIFS(A2:A11,{"苹果","草莓","橙子"},C2:C11,"签收"))

多条件计数之"OR-OR-AND"

[Excel]复杂条件关系下的单元格计数法_第10张图片

如果碰上了两层条件,而每层又有超过2个互为“或”的条件,那么可以尝试使用COUNTIFS配合2个数组进行计算。


[Excel]复杂条件关系下的单元格计数法_第11张图片

需要特别注意的是,COUNTIFS中的第一个数组应该是一个横向的数组,因此需要用逗号隔开其中的元素;而第二个数组应该是一个纵向的数组,因此需要用分号隔开其中的元素。这样Excel才能将两个数组组合成一个二维数组从来进行计算。
表达式:
=SUM(COUNTIFS(A2:A11,{"苹果","草莓","橙子"},C2:C11,{"签收";"在途"}))

由于Excel只支持2维数组的计算,因此如果有n层条件的话,恐怕是无法使用COUNTIFS这样的函数来实现了。

那么问题来了,如果有3层以上的条件,而每层条件内,多个条件又以“或”的逻辑相关联,那该怎么办呢?

欢迎大家在留言中互动。火箭君也会在下周公布大家的解决方案哦!

你可能感兴趣的:([Excel]复杂条件关系下的单元格计数法)