早知道TOCOL这个函数,Excel行列互换再也不用复制粘贴
- 2026-11-10 04:13:15
拿到一张横向铺开的二维表,每个月份一列,想透视做不了,想画图选不了系列。
只能复制粘贴一列一列的手动解决,错了,方法太笨了
今天的解法就一行公式:TOCOL
一、TOCOL 是什么
TOCOL 是 Excel 365 和新版 WPS 里的数组函数,作用一句话说完:把一个二维区域,拍成一列。
原表不动,公式在旁边吐出一列结果,源数据一改它跟着变。
它跟 FILTER、TEXTSPLIT 是同一批新函数,专门接管过去要靠 Power Query 或者复制粘贴转置才能干的活。

二、什么样的表该拍平
判断标准一条:第一行是不是字段,第一列是不是记录。
月份横着铺、产品横着铺、人员横着铺的,全是二维表。
这类表问题不在数据,在结构——透视表拽不了字段,图表选不了系列,VLOOKUP 也只能一层层嵌套。
想分析,先排平。

三、基础用法:一个参数就够
语法三段:=TOCOL(数组, [忽略], [扫描方向])。日常九成场景只写第一段。
数据在 A1:F10,旁边任意一格写 =TOCOL(A1:F10),回车,60 个格子全被拉成一列,空格子变成 0。
不想要这些 0,就轮到第二个参数出场,下一节讲。
拍完的结果会自动溢出到下方格子,占多少行看原表多大,不用担心把旁边的数据盖掉。

四、扫描方向:按行还是按列
第三个参数管读取顺序:写 0 或不写,按行扫,一行读完读下一行;写 1,按列扫,一列读完读下一列。
这步不是玄学。后面要做每人每月的明细,就按行扫;要做每月每人的,就按列扫。
顺序选反了,记录全错位,一拖透视表就看出来。

五、空值和报错:跳过它们
第二个参数管忽略,四个档位:0 全保留,1 跳空格,2 跳报错,3 空格和报错都跳。
最常用 3。原表里公式残了带 #N/A,直接写 =TOCOL(A1:F10, 3),出来就是干净一列,后面接去重、计数都不会被脏值打断。
拿不准就先写 3,宁可跳干净,也别把 #N/A 带进后面的统计。

六、TOROW:横着拍也行
TOCOL 竖着拍,TOROW 横着拍,参数一模一样。
什么时候用横向的?往邮件里贴、往 PPT 里排、做一张横版对照表的时候。
俩函数是双胞胎,记住一个等于记住俩:拍竖列找 TOCOL,拍横行找 TOROW。

七、实例:拍平之后喂透视表
一张月度销量表,12 个月横着铺,A 列是门店,B 到 M 列是 1 到 12 月。
三步:第一步 =TOCOL(B2:M100, 3) 拍出销量长列;第二步月份、门店照同样思路拍出来;第三步三列并排,插透视表,月份拖行、门店拖列、销量拖值。
门店再多、月份再长都不怕,区域改大一点,公式一次到位。
原来做不了的交叉汇总,两分钟出来。

八、拍平后再加工
拍出来的列套一层函数接着用:外面套 UNIQUE 去重,得一份干净门店清单;套 SORT 排序;套 COUNTIF 数次数。
不用记新语法,TOCOL 的结果当普通一列使就行。前面写过的 UNIQUE、FILTER,都能这么串起来。
顺序别反——二维表上直接套这些函数,多半会报错,先拍平再加工。

九、三个常见的坑
一是版本,TOCOL 要 Excel 365 / 2024 或新版 WPS,老版本返回 #NAME?,那就老实用 Power Query。
二是扫描方向想当然,不核对顺序就往下做,后面全错位。
三是拍平区域框大了,把合计行、备注列也拍进去,先框准数据区,或者用第二三参数把空值报错跳掉。
