Excel精英培训网

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

[分享] [分享]不重复值计数两法

[复制链接]
发表于 2008-1-5 00:44 | 显示全部楼层 |阅读模式

对不重复值计数,除了大家所熟悉知的COUNTIF()外,这里还给出了另外一个使用MATCH()的方法,详见附件.

KbSpLqiS.rar (2.26 KB, 下载次数: 161)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2008-1-5 00:47 | 显示全部楼层
回复

使用道具 举报

发表于 2008-1-5 00:52 | 显示全部楼层

第二个用

=SUMPRODUCT(--(MATCH(A2:A20,A2:A20,0)=(ROW(A2:A20)-1)))

可能容易理解些

回复

使用道具 举报

 楼主| 发表于 2008-1-5 00:57 | 显示全部楼层

你所说的 是>=(ROW(A2:A20)-1)吧?不是=(ROW(A2:A20)-1)哦.

至于说哪种好理解,原理想通了都好理解.

之所以取>(ROW(A2:A20)-2),是为了省一个字符.[em01]

[此贴子已经被作者于2008-1-5 0:57:35编辑过]
回复

使用道具 举报

发表于 2008-1-5 08:36 | 显示全部楼层

谢谢BB!
回复

使用道具 举报

发表于 2008-1-5 17:36 | 显示全部楼层

楼主能解释以下原理吗?

回复

使用道具 举报

发表于 2008-1-7 22:08 | 显示全部楼层

QUOTE:
以下是引用bifengxia在2008-1-5 0:57:00的发言:

你所说的 是>=(ROW(A2:A20)-1)吧?不是=(ROW(A2:A20)-1)哦.

至于说哪种好理解,原理想通了都好理解.

之所以取>(ROW(A2:A20)-2),是为了省一个字符.[em01]


我的意思不是>=,是=

是利用MATCH精确查找只找出列中第一个值的序号特性,再与行号的序列比较,这样只有出现第一次位置的与行号序列相等,为TROU,即1,以后再现的就不会与行号序列相等,这样有重复值就只计算一次.为什么要减1,是因为A2:A20这个区域是从第二行开始的,减去1,才能得到{1;2;3;......19}这样一个数列,即A2:A20的行号序列

如果为减字符,这个公式可以写成:    =SUM(N(MATCH(A2:A20,A2:A20,)=ROW(1:19)))

用N代替--,可省1字符,MATCH最后一个参数0可略写,ROW(A2:A20)-1,直接写为ROW(1:19)

[此贴子已经被作者于2008-1-7 22:09:46编辑过]
回复

使用道具 举报

发表于 2010-9-5 21:44 | 显示全部楼层

7楼点评比较独到,理解通了
回复

使用道具 举报

发表于 2010-9-7 10:29 | 显示全部楼层

什么 啊
回复

使用道具 举报

发表于 2014-7-2 18:28 | 显示全部楼层
学习了……
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 19:07 , Processed in 0.285301 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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