注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oh! I see you!

Hi! ppmm~~

 
 
 

日志

 
 

Excel里SUMIF和COUNTIF函数的应用缺陷  

2011-08-14 12:12:06|  分类: Excel |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本文链接:http://oicu.cc.blog.163.com/blog/static/1230394712011714012670/

SUMIF和COUNTIF这两个函数主要是用来处理纯数字的,有时候也可以处理纯文本,
但数字和文本混用时容易出问题。

这种情况往往就是拆分为SUM和IF用数组公式处理。


先说COUNTIF,语法:
COUNTIF(range, criteria)

range 必需。要对其进行计数的一个或多个单元格,其中包括数字或名称、数组或
包含数字的引用。空值和文本值将被忽略。

还有Excel单元格最大的数字精度15位,超过15位就没法判断,如下例:

   A  B
 1  1234567890123456  S1234567890123456
 2  1234567890123450  S1234567890123450

A、B列都设置为文本格式,但由于A列存储的是纯数字,COUNTIF处理时还是出错。

=COUNTIF($A$1:$A$2,A1)
结果是2

解决方法:
加一列辅助列,在数值前都加任意字符,
="S"&A1
或者
=CONCATENATE("S",A1)
填充得到新列,当然也可以用数组公式。

然后用
=COUNTIF($B$1:$B$2,B1)
结果是1

因为COUNTIF的range区域不能用函数构造出的新数组,所以辅助列是必须的。

不用辅助列的解法(数组公式):
{=SUM(IF($A$1:$A$2=A1,1,0))}
或者
{=SUM(IF(EXACT($A$1:$A$2,A1),1,0))}

 

如果行数不确定,希望对这一列有多少条查多少条,需要用到动态区域:

{=SUM(IF(OFFSET($A$1,,,COUNTA($A:$A),1)=A1,1,0))}


再谈谈SUMIF,语法:
SUMIF(range, criteria, [sum_range])

说明里有这一段话:“range 必需。用于条件计算的单元格区域中的每个单元格
都必须是数字或名称、数组或包含数字的引用。空值和文本值将被忽略。”

但示例2的 range 区域却是文本的,有点矛盾。

   A  B
 1  03  4
 2  3  5

=SUMIF(A1:A2,"=3",B1:B2)
结果是9,实际是5。数字和文本混用,sumif函数把03和3判断为一致。

其中一个解法是(数组公式):
{=SUM(IF(A1:A2=3,B1:B2,0))}
或者
{=SUM(IF(EXACT(A1:A2,"3"),B1:B2,0))}

  评论这张
 
阅读(1764)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018