跳转至

TOCOL 函数

函数概述

TOCOL 用于把二维区域“拉直”成单列,返回一个按规则排列的一维纵向数组(单列结果)。它常用于:

  • 把多列/多行数据汇总成一列,便于去重、筛选、透视或下拉列表
  • 把分散的区域拼成一列再做统计(如计数、匹配、查找)
  • 配合 UNIQUEFILTERSORTXLOOKUP 等动态数组函数形成流水线

返回结果是动态溢出的:源数据变化后,TOCOL 的结果会自动更新。

基础语法

=TOCOL(array, [ignore], [scan_by_column])

参数说明

参数 必填 含义 常用取值
array 需要展开为单列的数组/区域,可为单个区域或计算得到的数组 A1:D5A:AFILTER(...)
ignore 指定在展开时要忽略哪些值 0 不忽略(默认)
1 忽略空白
2 忽略错误值
3 同时忽略空白和错误
scan_by_column 指定展开顺序:按列还是按行扫描 TRUE 按列(默认)
FALSE 按行

小提示:ignore 主要用来清洗“空单元格/错误值”,减少后续处理负担。

基础用法示范

下面用一个示例数据区说明(假设在 A1:C4):

A B C
1 张三 90
2 李四 #N/A 88
3 王五 76
4 82 95

1)最基础:区域转单列

A1:C4 展开为一列(默认按列扫描):

=TOCOL(A1:C4)

得到的顺序是:先 A 列从上到下,再 B 列,再 C 列。

2)忽略空白:只要“有值”的项

=TOCOL(A1:C4, 1)

适合做“人员清单”“项目清单”等:把散落的输入区汇成一列,空格自动丢弃。

3)忽略错误:跳过计算错误

=TOCOL(A1:C4, 2)

当源区域里可能有 #N/A#VALUE! 等错误时,这个写法能让结果更干净。

4)同时忽略空白和错误

=TOCOL(A1:C4, 3)

这是最常用的清洗组合,直接输出“可用值列表”。

5)按行展开:改变扫描顺序

默认是按列;如果你想按从左到右、从上到下:

=TOCOL(A1:C4, 0, FALSE)

这在“每行是一条记录”的场景里更直观(类似把表格按阅读顺序串起来)。

6)搭配去重:做一份“唯一清单”

把区域拉直、清洗后再去重:

=UNIQUE(TOCOL(A1:C4, 3))

常用于整理“所有出现过的姓名/标签/物料编码”等。

7)搭配排序:做可维护的列表

=SORT(UNIQUE(TOCOL(A1:C4, 3)))

一条公式得到“去重 + 排序”的标准字典表。

8)先筛选再拉直:只汇总符合条件的值

例如先筛出 C 列分数 ≥90 的行,再把这些行的 A:C 展开:

=TOCOL(FILTER(A1:C4, C1:C4>=90), 3)

思路是:先把数据裁剪到需要的范围,再用 TOCOL 汇总成一列

总结

  • TOCOL 的核心价值:二维 → 一维,把分散数据快速汇总为可分析的单列数组。
  • 记住三个关键点:

    1. ignore 用来清洗(空白/错误)
    2. scan_by_column 控制按列或按行展开
    3. UNIQUE / SORT / FILTER 组合,能快速搭建“清洗→汇总→标准化”的公式链路