很多人在制作值班表或排班表时,会遇到一个典型问题:姓名分散在多个行和列中,人工整理不仅效率低,还容易出错。这时可以使用TOCOL函数+UNIQUE函数组合公式,实现一键提取干净名单。
一、多行多列值班表,提取名单刚刚好
使用场景:多行多列值班表整理、Excel姓名合并去重、自动生成值班人员名单、跨区域数据转一列
当姓名分布在 B2:D8 这样的区域时,我们可以在 F2 单元格输入公式:
=UNIQUE(TOCOL(B2:D8,1))
回车后即可自动生成一列“无重复人员名单”。

二、TOCOL函数核心作用
TOCOL函数功能解析:
TOCOL 的作用是将“多行多列数据转换为单列数据”,也就是把二维表结构“压平”为一列。
公式结构:
TOCOL(array, ignore, scan_by_column)
在本案例中:
B2:D8:表示需要整理的值班表区域1:表示忽略空白单元格(避免出现空值干扰)- 最终输出为一列连续数据
三、UNIQUE函数去重,生成干净名单
在Excel数据处理中,仅转换为一列还不够,还可能存在重复姓名,因此需要结合:
- Excel去重函数 UNIQUE
- 自动生成不重复名单
- 人员统计与值班排班优化
最终公式:
=UNIQUE(TOCOL(B2:E8,1))