一、求各种类型单元格的个数123ILoveYou真空单元格:指什么内容也没有的单元格;Excel真空单元格假空单元格:指0字符的空文本,一般是由网上下载来的或公式得来的,姑且称之为假空。jfkd假空单元格中国文本型单元格大家好MyGod数字型单元格所求类型单元格结果同志有志者事竟成真空单元格2恨苍天真空+假空单元格522.56立体非真空单元格20-188文本型单元格14区域内所有单元格22Home473数字型单元格6二、求=某个值的单元格个数50-31大于508-3073等于5043758小于50187836大于或等于5012-49-75小于或等于5022505050大于E5单元格的值8-99-59等于E5单元格的值4-58-96小于E5单元格的值188250大于或等于E5单元格的值129391小于或等于E5单元格的值22-2562078-2-36-67-91-38-72三、等于或包含某N个特定字符的单元格个数ABCDEKB两个字符6JJKFDLburk两个字符并且第2个是B2OPENab包含B4THANK同志第2个字符是B3COUNTIFexcelhome好等于“你好”2你好你好包含D38单元格的内容5我好中国人民第2字是D38单元格的内容3大家好吗解放军acdkl同志们好注:countif()函数对英文字母不区分大小写四、不连续区域求个数60三个区域中=6047070三个区域中=703307050三个区域中6043351五、两个条件求个数11810并且=157410=10并且15837=10并且=159141010并且15618151331281813133六、动态区域求个数班级姓名成绩班级成绩1子603701丑701寅85班级=D68,成绩大于=E6841卯91公式解析:2辰88用offset()生成每个班级的成绩区域(如E74:E80),再用countif()计数。2巳452午7055####3未551003申100963酉96733戌73663亥66783甲78643乙64七、用countif()排序(一般用法及生成内存数组)示例数据区域一般用法内存数组金世遗古龙古龙7####金逐流金世遗金世遗5金庸金庸金庸6木婉青金逐流金逐流2古龙梁羽生梁羽生8卧龙生令弧冲令弧冲1梁羽生木婉青木婉青4令弧冲卧龙生卧龙生3Taxis=T(OFFSET($A$85,RIGHT(LARGE(COUNTIF($A$85:$A$92,=&$A$85:$A$92)*10^5+ROW($A$85:$A$92)-ROW($A$85),ROW(OFFSET($A$1,,,ROWS($A$85:$A$92)))),5),))800004#REF!70000060000200004#REF!50000100000400006000023000070000120000300006100005000070000300005公式解析用COUNTIF($A$85:$A$92,=&$A$85:$A$92)生成D85:D92的数组再排序*10^5是因为行号最大65536不超过100000,用*一个足够大的数使行号大小不会影响排序结果。再用right(,5)取出各行应该得到的偏移量最后用T(Offset())得到内存数组八、用countif()的三维引用取得不重复值示例数据区域一般用法内存数组甲甲甲0.25####乙乙乙1丙丙丙1丁丁丁0.5戊戊戊0.5己己己0.5庚庚庚0.5辛辛辛1壬壬壬1癸癸癸1甲#N/A0.25甲#N/A0.25甲#N/A0.25丁#N/A0.5戊#N/A0.5己#N/A0.5庚#N/A0.510####数据区域三维用法一般用法行数甲111乙112丙113丁114戊115己116庚117辛118壬119癸1110甲2211甲3312甲4413丁2214戊2215己2216庚2217x=T(OFFSET($A$115,SMALL(IF(COUNTIF(OFFSET($A$115,,,ROW(data5)-ROW($A$114)),data5)=1,ROW(data5)),ROW(INDIRECT(1:&SUM(1/COUNTIF(data5,data5)))))-ROW($A$115),))公式解析用SUM(1/COUNTIF(data5,data5))求数据区域中不重复值个数(D115:D132)用COUNTIF(OFFSET($A$115,,,ROW(data5)-ROW(A$114)),data5)=1判断单元格内容是否重复,重复的结果1其结果就是=COUNTIF(A$135:A135,A135)公式下拖,详细见B135:C151以本题为例,ROW(data5)-ROW(A$114)产生1到17的一个垂直数组,D135:D151用small(if())取得不重复值的行号(offset()的行偏移量),如果countif()=1(即不重复)就取行号,否则就false,small()函数忽略逻辑值和文本值。最后再用T(Offset())生成内存数组。九、用countif()进行多表汇总计数示例姓名出现次数张三12#REF!李四10#REF!王五11#REF!周六12#REF!郑七10#REF!李八10#REF!一月张三周六郑七李八二月张三李四王五周六郑七李八三月张三李四王五周六郑七李八四月张三王五周六郑七李八五月张三李四王五周六李八六月张三李四王五周六郑七李八七月张三李四王五周六郑七李八八月张三李四王五周六郑七九月张三李四王五周六郑七李八十月张三李四王五周六郑七李八十一月张三李四王五周六郑七李八十二月张三李四王五周六公式解析用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所示。ExcelhomeGvntw2005/4/20=3&id=93747真空单元格:指什么内容也没有的单元格;假空单元格:指0字符的空文本,一般是由网上下载来的或公式得来的,姑且称之为假空。公式#REF!#REF!相当于countblank()函数5#REF!相当于counta()函数20#REF!假空单元格也是文本型单元格#REF!#REF!不是countif(),这里顺便点一下。#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!注:countif()函数对英文字母不区分大小写#REF!#REF!#REF!#REF!#REF!#REF!#REF!#REF!用offset()生成每个班级的成绩区域(如E74:E80),再用countif()计数。=T(OFFSET($A$85,RIGHT(LARGE(COUNTIF($A$85:$A$92,=&$A$85:$A$92)*10^5+ROW($A$85:$A$92)-ROW($A$85),ROW(OFFSET($A$1,,,ROWS($A$85:$A$92)))),5),))*10^5是因为行号最大65536不超过100000,用*一个足够大的数使行号大小不会影响排序结果。=T(OFFSET($A$115,SMALL(IF(COUNTIF(OFFSET($A$115,,,ROW(data5)-ROW($A$114)),data5)=1,ROW(data5)),ROW(INDIRECT(1:&SUM(1/COUNTIF(data5,data5)))))-ROW($A$115),))用COUNTIF(OFFSET($A$115,,,ROW(data5)-ROW(A$114)),data5)=1判断单元格内容是否重复,重复的结果1用small(if())取得不重复值的行号(offset()的行偏移量),如果countif()=1(即不重复)就取行号,否则就false,small()函数忽略逻辑值和文本值。张三李四王五周六郑七11111111111111111111111111111111111111111111111111111111210111210用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所示。=T(OFFSET($A$115,SMALL(IF(COUNTIF(OFFSET($A$115,,,ROW(data5)-ROW($A$114)),data5)=1,ROW(data5)),ROW(INDIRECT(1:&SUM(1/COUNTIF(data5,data5)))))-ROW($A$115),))李八111111111110姓名张三周六郑七李八姓名张三李四王五周六郑七李八姓名张三李四王五周六郑七李八姓名张三王五周六郑七李八姓名张三李四王五周六李八姓名张三李四王五周六郑七李八姓名张三李四王五周六郑七李八姓名张三李四王五周六郑七姓名张三李四王五周六郑七李八姓名张三李四王五周六郑七李八姓名张三李四王五周六郑七李八姓名张三李四王五周六