在处理Excel表格时,我们经常会遇到数据分散在多行多列的情况。比如值班表、签到表或名单表,姓名分布在多个列中,想要整合成一列进行后续处理,excel中有一个专门解决这个问题的函数——TOCOL,它能把多列区域转换为单列。

一、TOCOL函数语法

=TOCOL(要转换的数组或引用, [是否忽略指定类型的值], [按行/列扫描])

三个参数说明:

  • 第一参数:要转换的数据区域
  • 第二参数:0或省略保留所有值,1忽略空白,2忽略错误,3忽略空白和错误
  • 第三参数:省略或FALSE按行扫描,TRUE按列扫描

二、实战案例:多行多列提取员工名单

如下图所示,值班表中姓名分布在B2:D8的多行多列区域,有些单元格是空的。现在需要提取出不重复的人员名单。

在F2单元格输入以下公式,按回车即可:=UNIQUE(TOCOL(B2:D8, 1))

公式拆解:

  • TOCOL(B2:D8, 1):把B2:E8区域中的姓名转换为一列,第二参数1表示忽略空白单元格
  • UNIQUE(…):对转换后的单列名单去重,只保留每个姓名第一次出现

结果自动溢出到G列下方,生成一份干净的不重复名单。

Excel多列数据合并成一列,TOCOL函数一键搞定-天天办公网
多行多列提取员工名单

三、更多用法

忽略错误值:如果数据区域中有错误值,第二参数用2或3:

=TOCOL(B2:E8, 3)

按列扫描:默认按行扫描(先第一行所有列,再第二行)。如需按列扫描,第三参数设为TRUE:

=TOCOL(B2:E8, 1, TRUE)

不忽略任何值:省略第二参数或设为0,空白单元格会显示为0。

四、使用注意

版本要求:TOCOL函数仅支持Excel 2021、Office 365和最新版WPS,旧版本无法使用。

结果溢出:TOCOL返回动态数组,结果自动填充到下方单元格。目标区域有其他内容时会报错 #SPILL!。

五、总结

TOCOL函数的核心作用是把多行多列的数据“拉直”成一列。搭配UNIQUE可以快速提取不重复名单,搭配其他函数还能实现更多数据处理。掌握这个函数,多列数据整合不再是难题!