Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1995|回复: 4

[已解决]帮助:countif的用法

[复制链接]
发表于 2011-8-29 07:27 | 显示全部楼层 |阅读模式
  我在本网站的一个版块  看到一个 禁止输入相同的数 的 数据有效性设置方法,   例如 在A列 输入1,2,3,4,5,6,……  对A列进行数据有效性设置,  选取 自定义  嵌入公式 =countif(A:A,A1)<2,    设置好后,  在A 列如果输入相同的数  就会弹出警告框,  现在的问题是:=countif(A:A,A1)    是 在A列中 计算出 与A1单元格内容相同的 单元格数目,   假如我在A7输入2  而公式是统计A1相同的 单元格数目,  这个公式怎样理解?很困惑
最佳答案
2011-8-29 09:12
在公式"=countif(A:A,A1)<2"中,注意A1是相对引用,而非绝对引用,所以只检验当前单元格的合法性。也就是说在检验当前单元格输入内容在A列中是否有重复项。
发表于 2011-8-29 07:58 | 显示全部楼层
计算A列中所在单元格相同的个数,大于2为重复。
回复

使用道具 举报

发表于 2011-8-29 08:34 | 显示全部楼层
回复 tianti 的帖子


Excel中Countif()函数运用技巧



    Excel中能熟练地掌握函数的技巧,在水文日常工作中能达到事半功倍的效果。例如:要计算A1:An(定义:data)区域中非零的单元格的平均值,可在单元格中输入=sum(data)/countif(data, "<>0")。下面具体介绍Countif()函数的高级技巧如下:

一、求各种类型单元格的个数


所求类型单元格

公式

说明

真空单元格

=COUNTIF(data1,"=")


真空+假空单元格

=COUNTIF(data1,"")

相当于countblank()函数

非真空单元格

=COUNTIF(data1,"<>")

相当于counta()函数

文本型单元格

=COUNTIF(data1,"*")

假空单元格也是文本型单元格

区域内所有单元格

=COUNTIF(data1,"<>""")


数字型单元格

=COUNT(data1)

不是countif(),这里顺便点一下。

备注:data1为用户定义单元格区域,如用户把a1:d50区域定义为data1,以下data2、data3、data4、data5类同data1,也为用户定义的单元格区域。

二、求大于或小于等于某个值的单元格个数


所求内容

公式

大于50

=COUNTIF(data2,">50")

等于50

=COUNTIF(data2,50)

小于50

=COUNTIF(data2,"<50")

大于或等于50

=COUNTIF(data2,">=50")

小于或等于50

=COUNTIF(data2,"<=50")

大于E21单元格的值

=COUNTIF(data2,">"&$E$21)

等于E21单元格的值

=COUNTIF(data2,$E$21)

小于E21单元格的值

=COUNTIF(data2,"<"&$E$21)

大于或等于E21单元格的值

=COUNTIF(data2,">="&$E$21)

小于或等于E21单元格的值

=COUNTIF(data2,"<="&$E$21)

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


所求内容

公式

两个字符

=COUNTIF(data3,"??")

两个字符并且第2个是B

=COUNTIF(data3,"?B")

包含B

=COUNTIF(data3,"*B*")

第2个字符是B

=COUNTIF(data3,"?B*")

等于“你好”

=COUNTIF(data3,"你好")

包含D38单元格的内容

=COUNTIF(data3,"*"&D38&"*")

第2字是D38单元格的内容

=COUNTIF(data3,"?"&D38&"*")

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


四、不连续区域求个数


所求内容

公式

三个区域中>=60

=SUM(COUNTIF(INDIRECT({"a1:a10","b2:b20","c3:c30"}),">=60"))

三个区域中=70

=SUM(COUNTIF(INDIRECT({"a1:a10","b2:b20","c3:c30"}),70))

三个区域中<60

=SUM(COUNTIF(INDIRECT({"a1:a10","b2:b20","c3:c30"}),"<60"))

五、两个条件求个数


所求内容

公式

>10并且<=15

=SUM(COUNTIF(data4,">"&{10,15})*{1,-1})

>=10并且<15

=SUM(COUNTIF(data4,">="&{10,15})*{1,-1})

>=10并且<=15

=SUM(COUNTIF(data4,{">=10",">15"})*{1,-1})

>10并且<15

=SUM(COUNTIF(data4,{">10",">=15"})*{1,-1})

>10并且<=15

=COUNTIF(data4,">10")-COUNTIF(data4,">15")

六、数据的有效性验证


首先,选择要设置有效性验证区域(如:A1:A100,定义为:data5)中的任一单元格(假设为:A1),在excel工作表中,用鼠标依次点击菜单栏数据→有效性菜单命令,打开“数据有效性”对话框,在“允许”下拉按钮中设置有效性条件为“自定义”,在“公式”框中输入 =COUNTIF(data5,A1)<2,然后,复制A1单元格,选中除A1外的所有单元格(A2:A100),用鼠标依次点击编辑→选择性粘贴命令→粘贴→有效性验证。这样即实现了数据data5区域中不重复的验证条件。

关于=COUNTIF(F6:N6,"*")的相关问题:本人在用到公式=COUNTIF(F6:N6,"*")时,出现错误,我在所选的区域内(有M、#、*、和数字1、0),在用公式求*个数时,所得个数为非数字相加之和,而分别求M、#、*、1、0个数时得出的个数是正确的,同样的公式为什么求出不同的结果,很是郁闷,请各位帮忙!! 本来想把表考上,但考不上来。

"*"代表除数字外的任何符号,包括两个以上的符号、字符如“#”、“#¥”、“#222”、“B1”、以及以文本方式出现的数码“123”等的通配符,但不代表数字,包括以1.00E+12这样的方式表示的数字;所以解决与*号匹配的问题时,要在*号前加~符号,即“~*”仅代表*号。公式改为 =COUNTIF(F6:N6,"~*")即可。





回复

使用道具 举报

发表于 2011-8-29 09:12 | 显示全部楼层    本楼为最佳答案   
在公式"=countif(A:A,A1)<2"中,注意A1是相对引用,而非绝对引用,所以只检验当前单元格的合法性。也就是说在检验当前单元格输入内容在A列中是否有重复项。
回复

使用道具 举报

 楼主| 发表于 2011-8-29 10:34 | 显示全部楼层
"注意A1是相对引用,而非绝对引用"     明白啦  谢谢啦  
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-31 20:39 , Processed in 0.144658 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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