Excel中哪个函数可以统一去重复值后的唯一值的个数呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel中哪个函数可以统一去重复值后的唯一值的个数呢?相关的知识,希望对你有一定的参考价值。

相当于是Excel表中数据里的删除重复项,保留唯一值那个。我要把这些唯一的值统一一下个数。用什么函数呢

EXCEL中经常用到表格记一些流水账,希望在不断追加记录时自动统计出结果,固定的项目名称可以预先写出来,但追加的新记录中可能有新名称不断出现,且不知道这些名称前面有没有出现过,逐一查找比对是不现实的,这时就要想办法去重。
开启分步阅读模式
工具材料:
电脑
EXCEL软件
操作方法
01
比如要统计下表中每种水果的销售量,首先要列出每种水果的名称,然后用求和公式很容易可以做到:=SUMIF(B:B,F2,C:C)

02
在汇总之前,首先要从销售明细中将水果名称提取出来,如果名称是固定的那几个,可以复制B列,到F列粘贴,然后再从“数据“选项卡中,单击“数据工具”中的“删除重复项”即可得到各种不同的水果名。

03
或者用“数据透视表”以水果名为标签进行数量求和。

04
但不管用“删除重复项”还是用“数据透视表”,当有新的不同名称增加时,都不会自动改变,还要重复进行上面的步骤,尤其是后者,即使是已有的名称,追加或修改记录时都要重复处理。

05
因此对不断动态变化的数据进行汇总,用上面的方法并非良策,用公式法就可以解决要不断重复操作的问题,从B列中提取到不同的名称到F列,并向下扩大填充区域。

06
公式法就是要从上往下遍历,当单元格中的数据是第一次出现时,就将其取出来,非第一次出现就不取,因此可以使用MATCH函数,此函数返回该项在区域中的相对位置:=MATCH(B2,$B$1:B2,0),可以看出当返回的次序号与行号相同时,表示第一次出现,不同则代表上面已经出现过。

07
通常情况下,用IF函数来判断,如果上述条件为真,则返回水果名,为假返回空值:=IF(MATCH(B2,$B$1:B2,0)=ROW(2:2),B2,"")

08
不过这还不是想要的结果,在汇总时,特别是数据量大,重名较多的情况下,总不能看着汇总结果断断续续的吧,因此要将提取出来的结果去掉空单元,直接连在一起,此时就要用到数组公式,凡是符合条件的就返回行号,不符合的不要(通常用返回一个很大的数),然后再用SMALL函数,从上往下依次符合条件的行号:=SMALL(IF(MATCH($B$2:$B$1000&"",$B$2:$B$1000&"",0)=ROW($2:$1000)-1,ROW($2:$1000),4^8),ROW(1:1)),这是数组公式,数组公式与普通公式的编辑方式不同,编辑完成后,必须同时按住Ctrl+Shift+Enter三键结束公式编辑,会自动生成一对“{}”,这是数组公式的特征。

09
上面公式中的4^8,就是4的8次方,其值为65536,公式中用此值,是因为03版及以前的软件最多只有65536行,几乎不会在最后一行输入数据,从而当公式中返回此行中的数据时,是空值。MATCH函数返回的次序是从1开始的,现在的区域是从第二行开始的,所以公式中要用行号-1,返回行号后,再用INDEX函数返回相应行号的数据:=INDEX(B:B,SMALL(IF(MATCH($B$2:$B$1000&"",$B$2:$B$1000&"",0)=ROW($2:$1000)-1,ROW($2:$1000),4^8),ROW(1:1)))

10
从图中可以看出后面有许多0,这也不是想要的,出现这种情况,就是因为前面用了4^8,返回了B65536这个单元格的数据,这个单元格其实并没有数据,不做处理真正的空值会返回0,所以需要再加个判断,让其不返回无用的0,对于文本有更简单的处理方法,只要在公式后面再加个空值符号,空单元就会返回空值,不会返回0了:=INDEX(B:B,SMALL(IF(MATCH($B$2:$B$1000&"",$B$2:$B$1000&"",0)=ROW($2:$1000)-1,ROW($2:$1000),4^8),ROW(1:1)))&""

11
同样的对求和公式也要加个判断,在没有名称的情况下,不要出现0值:=IF(F2="","",SUMIF(B:B,F2,C:C))

12
输入公式并向下填充后,再追加记录时,就可以看到会自动跟随改变汇总结果,非常方便。
参考技术A 假设统计A列去重后的个数,公式:
=SUM(IFERROR(1/COUNTIF(A:A,A:A),0))
数组公式,需要按:CTRL+SHIFT+回车,组合键完成公式。追问

😅有不用数组的方式吗?数组不太会

增加辅助列的方式也行~

追答

如果有明确的数据区域,如:A1:A100,并且这个区城没有空格,可以用公式:

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

本回答被提问者采纳
参考技术B

请看示例:

公式为:

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

注意,千万注意范围,不要整行、整列,否则可能计算很浪费时间。

参考技术C 怎样统计每个不重复项的个数呢?使用“删除重复项”功能 首先选中所有数据,接着点击“数据”菜单——“删除重复值”——“确定”,这时Excel会告知你原始表中有几个重复值,几个唯一... 参考技术D 首先我想到的是用基本操作来解决,即【数据】菜单下的【删除重复值】但是实际工作环境中的数据不一定如题主所列,重复值一定在同一行,所以想

以上是关于Excel中哪个函数可以统一去重复值后的唯一值的个数呢?的主要内容,如果未能解决你的问题,请参考以下文章

Excel神奇的去重复值函数--UNIQUE函数

获取函数和值的函数的名称以及将函数应用于值后的返回值

怎么将两个EXCEL表格合并后去除重复数据

Excel处理数据与Python处理数据方法对比

如何利用python提取两个excel对比后的重复值的信息?

excel 从带公式的单元格中取值函数是哪个