在数据的分析和处理中,“去重”一直是绕不开的话题,如果单列去重,可以使用Unique函数完成,如果多列去重,如下图:
从数据信息中可以看到,每位参赛者参加了多项运动,如果想知道去重后的参赛者有多少人,该如何快速的完成了?
一、基础函数功能及语法结构解读
(一)Unique函数
1.功能:从指定的区域或数组中返回唯一值,即对指定的区域或数组去重。
2.语法结构:=Unique(待去重的单元格区域或数组,[比较方向],[返回范围])。
3.参数解读:
(1)带去重的单元格区域或数组,必须:可以是1行,也可以是1列,还可以是多行多列组成的区域。
(2)比较方向,可选:当为默认值FALSE时,按行进行比较;当为TRUE时,按列进行比较。
(3)返回范围,可选:当为默认值FALSE时,返回所有不同的重复值;当为TRUE时,返回恰好出现1次的非重复值。
4.案例解读
目的1:单列去重——提取“学历”字段。
操作方法:
在目标单元格中输入公式:=UNIQUE(C3:C24)。
目的2:多列去重——提取“学历”和“性别”的唯一值。
操作方法:
在目标单元格中输入公式:=UNIQUE(C3:D24)。
案例解读:
对比目的1和目的2 ,最直接的变化就是参数的范围从C3:C24扩大到C3:D24,多了1列,返回的值也随之多了1列,但每行的值均为不重复的值。
(二)Tocol函数
1.功能:将多个单元格区域(或单个区域)的内容按照从上到下,从左到右的顺序提取,并纵向排成一列(忽略空白或按规则保留)。
2.语法结构:=Tocol(数据区域,[忽略特定值],[读取方向])。
3.参数解读:
(1)数据区域,必须:需要转换的数据源。
(2)忽略特定值,可选:默认值为0,不忽略任何值(包括空单元格,错误值);1为忽略空单元格,但保留错误值;2为忽略错误值,但保留空单元格;3为同时忽略错误值和空单元格。
(3)读取方向,可选:默认值为0,先按行读取(同一行从左到右读完,再读下一行);1为先按列读取(同一列从上到下读完,再读下一列)。
4.案例解读
目的1:将参赛者名单汇总为1列,同一项目的参赛者毗邻。
操作方法:
在目标单元格中输入公式:=TOCOL(C3:K9,3,0)。
按理说明:
要实现上述需求,公式也可以为=TOCOL(C3:K9,3),因为读取方向的默认值为0,即先行后列,即同一项目的参赛者毗邻。
目的2:将参赛者名单汇总为1列,队长(第一位参赛者)毗邻。
操作方法:
在目标单元格中输入公式:=TOCOL(C3:K9,3,1)。
案例说明:
如果要实现“先列后行”的目的,参数“读取方向”必须为1,不能省略。
二、应用案例解读
学习了Unique和Tocol函数,相信大家对于文章开始提出的需求有了想法,起始就是Unique和Tocol函数的嵌套使用。
目的:统计参赛者的项目数。
操作方法:
1.先获取参赛者姓名,思路就是现用Tocol将所有的参赛者姓名转为1列,然后用Unique去重,所以在目标单元格中输入公式:=UNIQUE(TOCOL(C3:K9))。
2.然后用Countifs(或Countif)计数,所以在目标单元格中输入公式:=COUNTIFS($C$3:$K$9,M3)。
本章小结:
实际问题的解决依赖于技术途径,所以对于常用的函数要多思考,多应用,文章就用Unique和Tocol巧妙的解决了统计唯一参赛者的需求,并对参赛的项目进行了统计。
热门跟贴