今天给大家分享一个数据整理神器—TOCOL函数,新手也能一学就会!
核心功能:
把分散在多行多列的内容,一键转换成一列,还能自动跳过空格、错误值,专治表格杂乱!划重点:这个函数仅支持2021及以上版本和最新版WPS表格,老版本无法使用。
一、基础用法=TOCOL(要整理的单元格区域, [要忽略什么内容], [按什么顺序])
第1参数(必填):就是你要整理的单元格范围,比如B2:E8。
第2参数(选填):用来过滤掉特殊内容。不写或者写0:所有内容全保留,空格、错误值都不删
写1:只忽略空单元格(日常用得最多)写2:只忽略公式错误值写3:空格和错误值全都忽略
第 3 参数(选填):这个参数用来指定读取顺序。
不写或者写FALSE:默认按行读,从左到右、从上到下取内容如果写TRUE:表示按列读,从上到下、从左到右取内容
小贴士:公式直接按回车即可生效,不用按老版本的 Ctrl+Shift+Enter三键!
二、高频实用场景,拿来就能用1、多行多列值班表,提取名单刚刚好【使用场景】:姓名分散在值班表的好几行好几列,想整理成一列无重复的人员名单。
G2单元格输入公式,回车即可:=UNIQUE(TOCOL(B2:E8,1))

【公式拆解】:TOCOL 先把B2:E8里的姓名转成一整列,用第二参数使用1,表示忽略空单元格;再用UNIQUE 函数剔除重复名字,一步得到干净的名单。
2、重复显示不用怕,小T帮你想办法【使用场景】:A 列是标签名称,B 列是要重复的次数,想自动生成重复好的完整列表。D2 单元格输入公式,回车即可:=TOCOL(IF(B2:B5>=COLUMN(A:Z),A2:A5,0/0),2)

【公式拆解】:
先用IF函数做判断:COLUMN(A:Z)会生成1-26的数字,拿B列的重复次数和这些数字比,够次数就返回A列的名称,不够的就用0/0造一个错误值(占个没用的位置)
再用TOCOL的第二参数2,把所有错误值忽略掉,只留下重复好的文字内容,排成一整列。
小贴士:假如需要重复的次数超过26次,把A:Z改成A:AZ即可。
3、二维表转成规范表,小T就是一个宝【使用场景】:
左边是部门在首列、姓名散在右侧多列的二维表,想转成 “部门 + 姓名” 一一对应的两列规范数据。
G2 单元格输入公式,回车即可:=HSTACK(TOCOL(IF(B2:E5<>””,A2:A5,0/0),2),TOCOL(B2:E5,1))

【公式拆解】:
公式分两部分,最后拼在一起:
① 前半段 TOCOL:判断B-E列的单元格不为空,就返回对应行的部门名称,空单元格就造错误值;再用 TOCOL 忽略错误,把部门排成一整列;② 后半段TOCOL:把B-E列里的姓名忽略空格后排成一列;最后用HSTACK函数,把部门列和姓名列左右拼接,就得到了规范列表。
4、筛选数据很简单,年薪至少三万三【使用场景】:有姓名+部门的完整列表,想一键提取出“销售部”的所有人员姓名
D4 单元格输入公式,回车即可:=TOCOL(IF(B2:B9=D2,A2:A9,x),3)

【公式拆解】:先拿B列的部门和D2的“销售”做对比,符合条件就返回A列对应的姓名,不符合的就写个没加引号的x——Excel 不认识这个x,会自动生成错误值;再用TOCOL的第二参数参数3,把错误值和空格全忽略,只留下符合条件的姓名,排成一整列。
5、跨表合并再去重,小T服务一条龙【使用场景】:1-4 月的考勤名单分别放在4个工作表里,想汇总所有表的名单,提取出不重复的人员名单。

在“汇总表”的A1单元格输入公式,回车即可:=UNIQUE(TOCOL(‘1月:4月’!A:A,1))

【公式拆解】:TOCOL先把“1月”到“4月”4个工作表的A列内容合并成一整列,第二参数使用1忽略所有空单元格;
再用UNIQUE函数剔除重复名字,得到全量不重复的人员名单。