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

Oh! I see you!

Hi! ppmm~~

 
 
 

日志

 
 

Excel统计不重复项的(数组)公式  

2010-04-07 15:54:06|  分类: Excel |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

发信人: oicu (Oh! I see you!), 信区: OfficeSoft
标  题: Re: 求助一个统计同一列不重复名字的问题
发信站: 水木社区 (Tue Jan 13 10:48:50 2015), 站内

不过countif的效率还是差很多,换一个时间复杂度小一点的方法,
以下2种方法,测试100万行,还是勉强可以用,10万行压力不大:
{=SUM(IF(MATCH(A1:A1000,A1:A1000,)=ROW(1:1000),1,))}
或者
=SUM(IF(FREQUENCY(MATCH(A1:A1000,A1:A1000,0),MATCH(A1:A1000,A1:A1000,0))>0,1))

用countif的话1万行都吃力~
{=SUM(1/COUNTIF(A1:A1000,A1:A1000))}
或者
=SUMPRODUCT(1/COUNTIF(A1:A1000,A1:A1000))

以上公式,有空的单元格时会出错,需要打个补丁,比如
{=SUM(IF(COUNTIF(A1:A1000,A1:A1000)=0,0,1/COUNTIF(A1:A1000,A1:A1000)))}



http://iknow.baidu.com/question/108209201.html

统计不重复项的Excel数组公式
{=SUM(1/COUNTIF(A1:A7,A1:A7))}

举个简单的例子,比如,A1:A7中有A,A,A,B,C,D,D

首先 COUNTIF(A1:A7,A1:A7) 返回对每个单元格里面的数值统计的个数,返
回{3,3,3,1,1,2,2},对应 {A,A,A,B,C,D,D} 就很容易明白,返回的是这组数据
每个所对应的个数。

其次,用1去除,如果返回个数是1的,就还等于1,如果返回个数是大于1的,
比如是n,就会变成1/n ,一共会有n个1/n(这点明白很关键),比如上面就返回
{1/3,1/3,1/3,1,1,1/2,1/2}

最后,用SUM去求和,n个1/n相加,就等于1,意思是,有重复项的,只计作了1,
所以就能统计不重复项了。


发信人: trends (英朗 1.6T), 信区: OfficeSoft
标  题: Re: excel如何返回指定一行内容不同的单元格个数?
发信站: 水木社区 (Wed Apr  7 15:40:32 2010), 站内

=SUMPRODUCT(1/COUNTIF(A1:I1,A1:I1))

【 在 comego (来是come去是go) 的大作中提到: 】
: 比如 10 23 25 26 14 58 10 23 25
: 返回 6

 

  评论这张
 
阅读(3050)| 评论(0)

历史上的今天

评论

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

页脚

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