把A2:A7单元格去掉,得到“天津丫头,曹丽,佛山小老鼠
公式:
=LOOKUP(1,0/FREQUENCY(0,COUNTIF($B$1:B1,$A$2:A7)),$A$2:A7)&''
公式解释
数组公式,把公式复制后,还要把光标点到编辑栏里按三键,Ctrl Shift Enter,这里lookup嵌套在外面,你不按也可以!
=COUNTIF($B$1:B1,$A$2:A7),这个公式很绝妙,把第2参数所有姓名都到第1参数$B$1:B1单元格区域中去统计个数,为什么我说$B$1:B1是单元格区域,而不说B1单元格呢?,其实本来就是一个单元格,因为我们前面部分用了绝对引用,冒号后面部分用了相对引用,所以这个区域是动态的,也就是开始一个都没有=COUNTIF($B$1:B1,$A$2:A7)返回6个0,{0;0;0;0;0;0},现在我们假设B2单元格出现的“天津丫头”,公式下拉公式就变成了=COUNTIF($B$1:B2,$A$2:A8),返回的结果{1;0;0;1;0;0;0},第1个位置是1,第4个位置是1,都是指”天津丫头“的个数,因为B2有一个天津丫头“了
现在我们在countif外面嵌套一个Frequency函数,它的第1参数用0,第2参数用countif,公式
=FREQUENCY(0,COUNTIF($B$1:B1,$A$2:A7))
当公式还在B2单元格时,=COUNTIF($B$1:B1,$A$2:A7)返回的是6个0,根据Frequency这个函数几个特点
统计小于等于第2参数里的分隔点
如果第2参数分隔点出现重复计0
由于第1参数是0,而第2参数是6个0,小于等于0的个数返回1,后面5个0重复了分隔点,全计0,这样=FREQUENCY(0,COUNTIF($B$1:B1,$A$2:A7))返回{1;0;0;0;0;0;0},1个1,5个0
用0除以Frequency,首先大家要理解0/0报错,0/1=0,公式
=0/FREQUENCY(0,COUNTIF($B$1:B1,$A$2:A7)),返回的结果是{0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}
外面嵌套一个lookup函数,根据lookup函数的二法原理,当第1参数大过第2参数的最大值,那么就找最后一个数据,错误值不参放,得到如下公式
=LOOKUP(1,0/FREQUENCY(0,COUNTIF($B$1:B1,$A$2:A7)),$A$2:A7)
lookup第1参数用0,找到第2参数里的第1个位置那个个0,因为其它都是错误值,对应就是返回第3参数里第一个值“天津丫头“,好了第1个不重复是出来了,也好理解,接下来,我们看第2个重复值是怎样出来,如果我偷懒,此帖我就结束了,我为让大家真正明白,所以这里我还会讲一下第2个重复是怎样来的?
现在大家都知道通过公式B2单元格是“天津丫头',公式下拉,相对引用的单元格会变,绝对引用的单元格不会变,得到公式=COUNTIF($B$1:B2,$A$2:A8),上面我们也解过了,公式=COUNTIF($B$1:B2,$A$2:A8)返回={1;0;0;1;0;0;0},第1个位置是1,第4个位置是1,因为countif第1参数问了2次'天津丫头“的个数,第1个位置统计,第4个位置统计,所以返回2个1,其它全是0,现在我们在外面嵌套一个Frequency,得到公式=FREQUENCY(0,COUNTIF($B$1:B2,$A$2:A8)),Frequency第1参数是0,返回这个两上1,在第1参数里小于等于1的没有,有的学员会会,0也小于等于1,错,因为0已经划到0那个分隔点了,小于等于0只有1个,所以返回1,其它全返回0,第几个位置显示1呢,也就是出现一个新的姓名那个位置显示1?第2个位置曹丽,放松一下,拉一家常,曹丽是我的可爱女孩名字。=FREQUENCY(0,COUNTIF($B$1:B2,$A$2:A8))返回{0;1;0;0;0;0;0;0},现在我们要的是这个1位置,因此同要用0/frequency,这样上面说过了,我就不再说了,最后公式如下
=LOOKUP(1,0/FREQUENCY(0,COUNTIF($B$1:B1,$A$2:A7)),$A$2:A7)&''
最后同学们会问, 为什么后面还要连接一个空文本呢?,这个我来解释一下,是为了屏蔽0,因为
如=A9,由于A9是真空,=A9返回0,所以我们通过=A9&'',这样就不会返回0,返回空了
联系客服