SUM(COUNTIF($A$2:$i$8,”>”&{70,80})*{1,-1})这个公式是统计A2和I8数据区域内,大于70且小于等于80的数字的数量。
1. “>”&{70,80} 中 &是连接符,用来连接大于号和后面大括号中的数字,加了大括号表示让公式将大括号中的每个数据都与大于号连接一次,运算一次。也可以写成{“>70″,”>80″}
2. COUNTIF($A$2:$i$8,”>”&{70,80}) 这个算式的统计结果是一个数组,由符合条件大于70和符合条件大于80组成。比如分别为25,20.这两个结果是独立的,之间目前没有任何关系。
3. COUNTIF($A$2:$i$8,”>”&{70,80}) * {1,-1} 这其实是一个数组相乘,接2的例子,{25,20}*{1,-1},Excel的规则是,对应位置的值相乘,即计算结果生成了一个新数组 {25*1,20*(-1)}
4. SUM(COUNTIF($A$2:$i$8,”>”&{70,80})*{1,-1}) 加上Sum求和,就是对数组内的所有数据求和,按前例,相当于SUM({25,-20})=5
5. 所以上述的算法规则是:找出所有大于70的数字,再找出所有大于80的数字,然后相减就得到大于70却小于等于80的数字的数量了。
比较通俗的写法:
COUNTIF($A$2:$i$8,”>70″)-COUNTIF($A$2:$i$8,”>80”)
或写成
SUM(COUNTIF($A$2:$i$8,{“>70″,”>80″})*{1,-1}) 关键点是 条件数组里的值是独立的。
附注:COUNTIF函数的使用方法汇总
一、求各种类型单元格的个数
(1) 求真空单元格单个数: =COUNTIF(data,”=”)
(2) 真空+假空单元格个数: =COUNTIF(data,””) 相当于countblank()函数
(3) 非真空单元格个数: =COUNTIF(data,”<>”) 相当于counta()函数
(4) 文本型单元格个数: =COUNTIF(data,”*”) 假空单元格也是文本型单元格
(5) 区域内所有单元格个数: =COUNTIF(data,”<>”””)
(6) 逻辑值为TRUE的单元格数量 =COUNTIF(data,TRUE)
小说明:
EXCEL单元格内数据主要有以下几类:数值型,文本型,逻辑型,错误值型。其中时间类型也是一种特殊的数值。文本类型的数字是文本型。
空单元格:指什么内容也没有的单元格,姑且称之为真空。
假空单元格:指0字符的空文本,一般是由网上下载来的或公式得来的,姑且称之为假空。
date指单元格区域,该参数不能是数组
二、求><=某个值的单元格个数
(1) 大于50 =COUNTIF(data,”>50″)
(2) 等于50 =COUNTIF(data,50)
(3) 小于50 =COUNTIF(data,”<50″)
(4) 大于或等于50 =COUNTIF(data,”>=50″)
(5) 小于或等于50 =COUNTIF(data,”<=50″) ¬
(6) 大于E5单元格的值 =COUNTIF(data,”>”&$E$5)
(7) 等于E5单元格的值 =COUNTIF(data,$E$5)
(8) 小于E5单元格的值 =COUNTIF(data,”<“&$E$5)
(9) 大于或等于E5单元格的值 =COUNTIF(data,”>=”&$E$5)
(10) 小于或等于E5单元格的值 =COUNTIF(data,”<=”&$E$5)
三、等于或包含某N个特定字符的单元格个数
(1) 两个字符 =COUNTIF(data,”??”)
(2) 两个字符并且第2个是B =COUNTIF(data,”?B”)
(3) 包含B =COUNTIF(data,”*B*”)
(4) 第2个字符是B =COUNTIF(data,”?B*”)
(5) 等于“你好” =COUNTIF(data,”你好”)
(6) 包含D3单元格的内容 =COUNTIF(data,”*”&D3&”*”)
(7) 第2字是D3单元格的内容 =COUNTIF(data,”?”&D3&”*”)
注:countif()函数对英文字母不区分大小写,通配符只对文本有效
四、两个条件求个数
(1) >10并且<=15 =SUM(COUNTIF(data,”>”&{10,15})*{1,-1})
(2) >=10并且<15 =SUM(COUNTIF(data,”>=”&{10,15})*{1,-1})
(3) >=10并且<=15 =SUM(COUNTIF(data,{“>=10″,”>15″})*{1,-1})
(4) >10并且<15 =SUM(COUNTIF(data,{“>10″,”>=15″})*{1,-1})
注:一般多条件计数使用SUMPRODUCT函数,以上方法较少使用,仅供参考。
补充:三个区域计数:
三个区域中>=60 =SUM(COUNTIF(INDIRECT({“a46:a48″,”b48:b50″,”c47:c48″}),”>=60″))
五、各种特殊统计要求的计算 A2:A32 为存放数据的区域
(1)非空文本(仅包括可键入文本) =COUNTIF(A2:A32,”>=!”)
(2)所有非空文本 =COUNTIF(A2:A32,”>=!”)+COUNTIF(A2:A32,”>=”&CHAR(1))-COUNTIF(A2:A32,”>= “) 或 {=SUM(COUNTIF(A2:A32,”>=”&{“!”,” “})*{1,-1})+COUNTIF(A2:A32,”>=”&CHAR(1))}
(3)全部可见单元格 {=SUM(N(IF(ISERROR(A2:A32),1,SUBSTITUTE(A2:A32,” “,””))<>””))}
(4)有效可见单元格 =COUNTIF(A2:A32,”>=!”)+COUNTIF(A2:A32,”>=”&CHAR(1))-COUNTIF(A2:A32,”>= “)+COUNT(A2:A32)
(5)全部不见单元格(真空+空格+空文本) =COUNTIF(A2:A32,””)-COUNTIF(A2:A32,”>=!”)+COUNTIF(A2:A32,”>= “)
(6)空格 =COUNTIF(A2:A32,”>= “)-COUNTIF(A2:A32,”>=!”)
(7)空文本”” =COUNTIF(A2:A32,””)-COUNTIF(A2:A32,”=”)
(8)逻辑与错误 =COUNTIF(A2:A32,”<>”)-COUNTIF(A2:A32,”*”)-COUNT(A2:A32)