ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8188|回复: 16

[求助] [已解决]COUNTIF函数的第二个参数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-9-6 12:00 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 爱疯 于 2012-9-6 16:06 编辑

原帖:http://club.excelhome.net/thread-653354-1-1.html

一、求各种类型单元格的个数
(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. data=非空+真空+假空
2. ""表示真空+假空的集合
3. <>是反集。那么是<>"",应表示从data(全集)里排除真空+假空的集合,这样只剩非空。所以<>""应表示非空个数啊?
问题:为什么<>""表示所有单元格个数?
谢谢!
countif2.rar (3.4 KB, 下载次数: 46)

TA的精华主题

TA的得分主题

发表于 2012-9-6 12:55 | 显示全部楼层
本帖最后由 qigengzier 于 2012-9-6 12:56 编辑

原帖是有错
=COUNTIF(A1:A3,"<>""")
是表示 所选单元格不是“的个数
不是单引号

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-9-6 12:56 | 显示全部楼层
(2)真空+假空单元格个数:=COUNTIF(data,"")相当于countblank()函数
(3)非真空单元格个数:=COUNTIF(data,"<>")相当于counta()函数

能否这样理解呢?第5条就是第2和第3 的集合。 两个符号  <>  “”   连写在一起,代表两个一起的合成。
而不是按常规理解>5,或<>5之类的来理解呢?
是否一种特别的规则?  
(5)区域内所有单元格个数:=COUNTIF(data,"<>""")

请大家再指教。

TA的精华主题

TA的得分主题

发表于 2012-9-6 13:00 | 显示全部楼层
=COUNTIF(A1:A3,"<>""")
我个人理解 如果你要统计等于 或不等于的个数。
用countif你怎么写
因为会和“”混淆,所以用"",即"<>"""表示<>".
1.jpg

countif2.rar

3.49 KB, 下载次数: 21

TA的精华主题

TA的得分主题

发表于 2012-9-6 13:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
因此原帖的   (5)区域内所有单元格个数:=COUNTIF(data,"<>""")   是有误的
向我的附件,就不行
它是指区域中不等于"的个数

TA的精华主题

TA的得分主题

发表于 2012-9-6 13:05 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-9-6 13:09 | 显示全部楼层
其实第五个就相当于=COUNTIF(A1:A5,"<>"&"""")

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-6 14:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
444.jpg
countif3.rar (7.84 KB, 下载次数: 10)


谢谢大家的指导,我觉得2楼说的对,学习了!
从修改后的附件看,也是如此。


C15和C16结果一样,是因为C15和C16条件参数等效。
C2和C3结果不一样,是因为C2和C3条件参数不等效。
我觉得是,C3里面的一对双引号相对C2,已经转义了(图中的条件说明)。这么理解对么?

TA的精华主题

TA的得分主题

发表于 2012-9-6 14:38 | 显示全部楼层
谈点自己的体会吧
其实我对countif第二参数的理解,
就是去掉引号后,从开始找运算符,后面的部分作为文本处理;如果这样是无法理解的,就理解为省略了等号。
=COUNTIF(data,"=") 去掉等号后,前面是等号,后面是真空;
=COUNTIF(data,"") 去掉引号后,是真空,理解为省略了等号。(等号在括号外相当于假空,在括号内等于真空)。
=COUNTIF(data,"<>")不等于真空
=COUNTIF(data,"*")相当于省略了等号,"*"统配所有文本,所以统计列文本的数量
而求非假空文本是=COUNTIF(data,"?*")
=COUNTIF(E:E,"~*")等于星号的文本
=COUNTIF(E:E,"*~**")是含星号的文本。
=COUNTIF(data,"<>""") 有点理解是因为可能会理解为<>"" 实际"<>"""应该是"<>"&""""的简写 ,所以是不等等号的意思。
类似的:
=COUNTIF(data,"><")是大于文本"<"
=COUNTIF(data,"=<")等于文本"<"
=COUNTIF(data,"<")小于空 =COUNTIF(data,"<")大于空 无法比较结果都是0
还要指出COUNTIF是可以计算 错误值和逻辑值的
比如
=COUNTIF(data,TURE)    =COUNTIF(data,find(1,2))      =COUNTIF(data,1/0)
=COUNTIF(data,NA())     =COUNTIF(data,sum(A1:A2 B1:B2) 都是可以计算出,相同的逻辑值和错误类型的,
而=COUNTIF(data,"<>")其实把错误和逻辑值计算在内的。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-6 14:56 | 显示全部楼层
本帖最后由 爱疯 于 2012-9-6 14:58 编辑
xyunal 发表于 2012-9-6 14:49
进来学习的


谢谢sharprain !

按你的理解,"=" 和 ""分别表示什么呢?

PS:我引用错楼层了,还想请问sharprain

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-17 10:12 , Processed in 0.043529 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表