搜索
您的当前位置:首页正文

Countif函数从入门到精通

来源:哗拓教育
一、求各种类型单元格的个数

123I Love YouExcel

jfkd中国

大家好My God同志有志者事竟成

恨苍天22.56立体-188Home

473

真空单元格

假空单元格文本型单元格数字型单元格

真空单元格:指什么内容也没有的单元格;假空单元格:指0字符的空文本,一般是由

所求类型单元格结果真空单元格2真空+假空单元格5非真空单元格20文本型单元格14区域内所有单元格22

数字型单元格6

二、求><=某个值的单元格个数

50-303778-4950-99-588293-220-2-67-38-31735836-7550-59-9650915678-36-91-72大于50等于50小于50

大于或等于50小于或等于50

50大于E5单元格的值

等于E5单元格的值小于E5单元格的值

大于或等于E5单元格的值小于或等于E5单元格的值

8418122284181222

三、等于或包含某N个特定字符的单元格个数

ABCDEJJKFDLbOPENTHANKCOUNTIF你好我好大家好吗acdklKBurkab同志excelhome你好中国人民解放军同志们好两个字符

两个字符并且第2个是B

包含B

第2个字符是B等于“你好”

包含D38单元格的内容第2字是D38单元格的内容

6243253

注:countif()函数对英文字母不区分大小

四、不连续区域求个数

607030

703351

7050

三个区域中>=60三个区域中=70三个区域中<60434

五、两个条件求个数

11431418131218138107101538133>10并且<=15>=10并且<15>=10并且<=15>10并且<15

7896

六、动态区域求个数

班级11112223333333姓名子丑寅卯辰巳午未申酉戌亥甲乙成绩60708591884570551009673667864班级成绩360班级=D68,成绩大于=E68

公式解析:6

用offset()生成每个班级的成绩区域(如E74:E80),再55####

1009673667864七、用countif()排序(一般用法及生成内存数组)示例

数据区域金世遗金逐流金庸木婉青古龙卧龙生

一般用法古龙金世遗金庸金逐流梁羽生令弧冲

内存数组

古龙金世遗金庸金逐流梁羽生令弧冲7####56281

梁羽生令弧冲木婉青卧龙生木婉青卧龙生43

Taxis=T(OFFSET($A$85,RIGHT(LARGE(COUNTIF($A$85:$A$92,\">=\"&$A$85:$A$92)*10^5+ROW($A$85:800004700000600002500001400006300007200003100005

#NAME?

0000400000000020000100006000070000300005

#NAME?

公式解析

用COUNTIF($A$85:$A$92,\">=\"&$A$85:$A$92)生成D85:D92的数组再排序

*10^5是因为行号最大65536不超过100000,用*一个足够大的数使行号大小不会影响排序结果再用right( ,5)取出各行应该得到的偏移量最后用T(Offset())得到内存数组

八、用countif()的三维引用取得不重复值示例

数据区域甲乙丙丁戊己庚辛壬癸甲甲甲丁戊己庚

一般用法甲乙丙丁戊己庚辛壬癸

内存数组甲乙丙丁戊己庚辛壬癸#N/A#N/A#N/A#N/A#N/A#N/A#N/A

0.25####

110.50.50.50.51110.250.250.250.50.50.50.5

10####行数

123

数据区域甲乙丙

三维用法

一般用法111111

丁戊己庚辛壬癸甲甲甲丁戊己庚11111112342222111111123422224567891011121314151617

x=T(OFFSET($A$115,SMALL(IF(COUNTIF(OFFSET($A$115,,,ROW(data5)-ROW($A$114)),data5)=

公式解析

用SUM(1/COUNTIF(data5,data5))求数据区域中不重复值个数(D115:D132)

用COUNTIF(OFFSET($A$115,,,ROW(data5)-ROW(A$114)),data5)=1判断单元格内容是否重复,其结果就是=COUNTIF(A$135:A135,A135)公式下拖,详细见B135:C151

以本题为例,ROW(data5)-ROW(A$114)产生1到17的一个垂直数组,D135:D151

用small(if())取得不重复值的行号(offset()的行偏移量),如果countif()=1(即不重复)就取最后再用T(Offset())生成内存数组。

九、用countif()进行多表汇总计数示例

姓名张三李四王五周六郑七李八一月二月三月四月五月六月七月八月九月十月十一月出现次数121011121010张三张三张三张三张三张三张三张三张三张三张三#NAME?#NAME?#NAME?#NAME?#NAME?#NAME?周六李四李四王五李四李四李四李四李四李四李四郑七王五王五周六王五王五王五王五王五王五王五李八周六周六郑七周六周六周六周六周六周六周六郑七郑七李八李八郑七郑七郑七郑七郑七郑七李八李八李八李八李八李八李八十二月张三李四王五周六公式解析

用TEXT(ROW(INDIRECT(\"1:12\")),\"[dbnum1]d月\")返回十二个月的工作表名,A174:A185所示。TEXT(ROW(INDIRECT(\"1:12\")),\"[dbnum1]d月\")中加上INDIRECT(\"1:12\"),是为了使1:12行有删为了便于说明,我把A2:A100改为A2:A10,并转换为列来说明,如B174:J185所示,

然后对每一行(实际是每个月表的A2:A100)分别计数,最后用sum()求和,如K173:P186所示。

Gvntw2005-4-20

什么内容也没有的单元格;

0字符的空文本,一般是由网上下载来的或公式得来的,姑且称之为假空。

公式#NAME?#NAME?#NAME?#NAME?#NAME?#NAME?

相当于countblank()函数相当于counta()函数

假空单元格也是文本型单元格不是countif(),这里顺便点一下。

520

#NAME?#NAME?#NAME?#NAME?#NAME?#NAME?#NAME?#NAME?#NAME?#NAME?

#NAME?#NAME?#NAME?#NAME?#NAME?#NAME?#NAME?

函数对英文字母不区分大小写

#NAME?#NAME?#NAME?

#NAME?#NAME?#NAME?#NAME?

#NAME?

成绩区域(如E74:E80),再用countif()计数。

*10^5+ROW($A$85:$A$92)-ROW($A$85),ROW(OFFSET($A$1,,,ROWS($A$85:$A$92)))),5),))

行号大小不会影响排序结果。

5)-ROW($A$114)),data5)=1,ROW(data5)),ROW(INDIRECT(\"1:\"&SUM(1/COUNTIF(data5,data5)))))-ROW($A$115),))

判断单元格内容是否重复,重复的结果>1

ountif()=1(即不重复)就取行号,否则就false,small()函数忽略逻辑值和文本值。

张三11111111111李四111111111王五1111111111周六11111111111郑七111111111111211011111210工作表名,A174:A185所示。

:12\"),是为了使1:12行有删除或插入行操作时不影响公式的计算结果174:J185所示,

)求和,如K173:P186所示。

ta5)))))-ROW($A$115),))

李八111111111110

因篇幅问题不能全部显示,请点此查看更多更全内容

Top