Excel excel提取不重复值

一、INDEX—MATCH=ROW 法=INDEX(A:A,SMALL(IF(MATCH($A$2:$A$11,$A$2:$A$11,0)=ROW($A$2:$A$11)-1,ROW ($2:$11),4^8),ROW(1:1)))&""

分析: 
1、对 A 列中的每一项利用 MATCH 函数找出其在 A 列中首次出现的位置,返回相应的行 号。超出列表范围时将返回一个较大的行号,如 65536。 
2、利用 SMALL 函数对这些行号数据由小到大排序。 
3、利用 INDEX 函数返回与查找到的行号相应的 A 列的值。 
4、用 A 列的值与””连接作为最终的值,当行号足够大时,对应的 A 列单元格为空单元格, 空单元格与""连接,依然是空单元格。 
最终结果,从 A 列筛选出的没有重复数据的单元格排在表格的上半部分,下半部分为空单 元格,正是我们想要的效果。


       二、COUNTIF 法=INDEX(A:A,MIN(IF(COUNTIF($C$1:C1,$A$2:$A$160)=0,ROW($A$2:$A$160),4^8)))&""

(C2开始输入公式)这种解法看着有点怪异,一般人是想不到的,除非你是二般人。说它怪,怪在哪儿呢?怪就 怪在它的着眼点让人匪夷所思:

1、要查找 A 列中不重复的数据,一般人都会首先考虑怎样处理 A 列中的数据,其它无关的 或空白区域是不会上眼的。这种解法的独到之处就是首先在一空白列处查找 A 列中的数据, 如果找不到就返回该数据所在的行号,否则返回一个较大的值 65536。 
2、用 MIN 函数据找到 A 列中的数据首次出现的行号。 
3、用 INDEX 函数在空白列处返回对应的 A 列中的值。 

      


       三、FREQUENCY 法(仅适用于数值)=INDEX(A:A,SMALL(IF(FREQUENCY($A$2:$A$11,$A$2:$A$11),ROW($A$2:$A$11),4^8), ROW(1:1)))&"" 
1、用 FREQUENCY 函数判断 A 列中的每一个数据是否在 A 列中出现一次,如果仅出现一 次就返回当前行号,否则返回一个较大的数 65536。
2、用 SMALL 函数对返回的行号从由小到大排序。
3、用 INDEX 函数返回对应的 A 列中的值。


       四、COUNTIF 法=IF(COUNTIF($A$2:A2,A2)>1,"",A2)
1、利用函数 COUNTIF 统计 A 列中的数据是否大于 1,如果大于 1,返回空值,否则返回 当前值。 
2、对生成的数据排序以清除空白单元格。   
    
       五、其它方法。
公式一:=SUM(1/countif(A1:A10,A1:A10)) 按 Ctrl+Shift+回车键结束 
公式二:=COUNT(0/(MATCH(A1:A10,A1:A10)=ROW(1:10))) 按 Ctrl+Shift+回车键结束 
公式三:=SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10))
公式四:=COUNT(0/(COUNTIF(A1:A10,A1:A10)=1)) 按 Ctrl+Shift+回车键结束 
公式五:=SUM(N(COUNTIF(A1:A10,A1:A10)=1)) 按 Ctrl+Shift+回车键结束 

公式六:=SUM(INT(1/COUNTIF(A1:A10,A1:A10)))按 Ctrl+Shift+回车键结束 


六、最简单的公式

数据源为A列,要在C列中提取不重复的唯一值。

_]VLIUW~Q_LDS)EC[J%QW~S

在此我们需要应用的函数有COUNTIF、MATCH、INDEX、IFERROR。

思路是利用COUNTIF+MATCH定位不重复的行数,再使用INDEX根据COUNTIF+MATCH返回的行数,提取A列中不重复行单元格内的内容,而IFERROR用于排错,当提取完唯一值后,当出现#N/A错误时显示为空。

在C2单元格中输入数组公式:

={IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$12),0)),"")}

注:{……}这个括号是同时安Ctrl+Shift+Enter得到的数组公式形式,无需输入。

 

公式分析:

C2单元格内:

COUNTIF($C$1:C1,$A$2:$A$12)此部分公式,我们可以看到此时$C$1:C1不存在数据源A2:A12中的任何值,所以数组计算显示为{0,0,0,0……}。

MATCH(0,COUNTIF($C$1:C1,$A$2:$A$12),0)此处MATCH用以定位0在COUNTIF数组{0,0,0,0……}中的位置,返回1。

INDEX($A$2:$A$12,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$12),0))查询A2:A12中,MATCH返回行号所在单元格的内容“AS-1001”。

IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$12),0)),"")最后黑色的公式IFERROR用于排错,当提取完唯一值后,当出现#N/A错误时显示为空。

用函数公式提取唯一值_公式解释1

拖拉C2单元格数组公式至C12完成提取唯一值的操作

C3单元格内:

={IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($C$1:C2,$A$2:$A$12),0)),"")}

在向下拖拉数组公式时,唯C2单元格会改变。用以确认下一个唯一值所在位置。

用函数公式提取唯一值_2

视频分析

http://bbs.51cto.com/thread-968836-1.html


  1. 双击B2单元格,输入下面的公式:

    =INDEX(A$1:A$99,MATCH(0,COUNTIF(B$1:B1,A$1:A$99),0))&""

    公式输入完毕后,左手按住Ctrl和Shift,右手按下回车运行公式。

    excel中提取不重复值(唯一值)方法大全
  2. 将B2的公式下拉就返回了A列姓名的不重复值。

    excel中提取不重复值(唯一值)方法大全
  3. 3

    取得不重复值的公式很多,上面仅仅是其中一例。也可以用INDEX+SMALL+IF+MATCH的经典组合来获取不重复值,


  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值