用公式如何统计满足多个条件的不重复的数据个数?如图,在F2中要求得“彩色的动物有几种”结果应该是2,在G2中要求得“白色且2条腿的动物有几种”结果也应该是2。注意数据区域可能有空行!
1、以excel2010版本为例,如下图要统计15到49岁女性多少人;
2、首先在C1单元格输入countifs函数,因为这里要统计多个条件,所以不能用countif函数;
3、输入公式=COUNTIFS(A:A,"=女",B:B,">=15",B:B,"<=49"),按enter键则可得出统计结果;
4、如果改变条件,变成统计20到49岁男性多少人,那么在公式的相应位置更改参数则可。
看截图,貌似用的版本还是2003的,所以下面的公式只用2003版本中的函数:
F2=COUNT(0/(MATCH(B2:B27&"彩色",B2:B27&C2:C27,)=ROW(1:26)))
G2=COUNT(0/(MATCH(B2:B27&"白色",IF(D2:D27=2,B2:B27&C2:C27),)=ROW(1:26)))
两个公式均为数组公式,要同时按Ctrl+Shift+Enter三键输入数组公式
希望能帮你解决问题。
追问能解释一下公式吗?用0除以match匹配出来的值是什么意思?还有match函数里,逗号后面是空的为什么不报错?向你学习!
追答match中最后加一个逗号,相当于省略了0或false,也就是精确匹配,是一种简化写法,使公式更简练。
当有重复数据时,精确匹配就总是找到第一次出现的位置。所以只有第一个数据才等于对应的行号,等于的结果为true,其余为false。用0来除以这些true和false,等到0或错误值。最后用count来计数,错误值被忽略,得到0的个数,也就是不重复数据的个数了。
利用精确匹配返回第一个值的行数,再利用0除以任何数都等于0的特性,公式非常巧妙。如果还有更多条件,那么在if中应该还可以嵌套if是么?但如果数据行数不确定的话又该如何呢?比如将b2:b27改为b:b?另外,我是excel2007,还有什么更巧妙的公式么?非常感谢!
追答多个条件如何处理,要结合具体情况来处理,一般一个IF即可,如IF((某列=条件1)*(某某列=条件2)*(某某某列=条件3),要计数的列)
一般不建议用B:B这样的形式,而根据数据的多少来编写公式,道理是显而易见的,一般情况下,你写B:B,Excel就要对整个B列(2007版 开始有1048756行)每个单元格都按编写的公式进行比较计算什么的,本来没有数据,却要它去计算,消耗不必要的资源。2007的话,可以用countifs,基本方式就是草原上之根回答以2010为例的公式。
用countifs我试过这么写,f2=SUM(IFERROR(1/COUNTIFS(B2:B29,B2:B29,C2:C29,"彩色"),0))三键输入。但是结果有问题,我知道问题出在哪,这种写法将颜色不是彩色的蜘蛛也计算了占比,所以最后将占比求和时有偏差,但是没办法解决,不知道你有什么好的思路?
本回答被提问者采纳假设数据在Sheet2,数量在D列。
方法1:使用普通公式
求数据个数
=COUNTIFS(Sheet2!B:B,"?????08*",Sheet2!C:C,"苹果")
求数据总和
=SUMIFS(Sheet2!B:B,"?????08*",Sheet2!C:C,"苹果",Sheet2!D:D)
公式解释:
?问号匹配任意单个字符,*星号匹配任意一系列字符
方法2:使用数组公式
求数据个数
=COUNT((MID(Sheet2!B:B,6,2)="08")*(Sheet2!C:C="苹果")) ,然后按Ctrl+Shift+Enter三键结束。
求数据总和
=SUM((MID(Sheet2!B:B,6,2)="08")*(Sheet2!C:C="苹果")) ,然后按Ctrl+Shift+Enter三键结束。