excel里要把横排数据转成竖排,最快的方法就是复制源区域后,点选择性粘贴里的「转置」功能;要是想之后修改源数据的时候,转置的结果能自动同步更新,就用 transpose 函数。本次演示用的是microsoft 365版本的excel。
下面我们用一组横向排列的数字做演示,你实际操作的时候不管是姓名、月份、成绩、部门名称这类内容,操作逻辑完全一样。注意先确认原数据是横向排布的,给目标区域留够空位,基本不会把数据贴乱。
第一步:选中横排数据
用鼠标拖选你要转置的整段横排单元格,比如示例里连续的1、2、3,选区边框出来之后按 Ctrl+C 复制,Mac 版 Excel 对应的快捷键是 Command+C。这里注意只选真正要转置的内容,别把旁边的空白列也一起框进去,不然粘贴完会多出没用的空单元格。

第二步:点到目标单元格
在表格的空白位置点一下,选中你要放结果的第一个单元格。举个例子,如果源数据有3个横向单元格,那这个目标单元格下方至少要留3行空位;要是目标位置旁边已经有其他内容,赶紧换个空白地方,避免不小心把原有数据覆盖掉。

第三步:选择转置粘贴
右键点刚才选的目标单元格,在弹出的「粘贴选项」里点那个带横竖方向切换图标的转置按钮,也可以点开「选择性粘贴」窗口,手动勾选「转置」选项。点完之后原来横着排的 1、2、3,就会直接竖着排在目标区域了。这个方法适合一次性整理数据,粘贴出来的都是普通静态数值,之后你改源数据的时候,转置的结果不会自动跟着变。

第四步:输入 TRANSPOSE 函数
如果需要转置结果和源数据同步更新,先在目标位置选中和最终结果大小一致的区域,再输入 =TRANSPOSE(源区域) 就行。比如横排的源区域是 B5:E6,想把它转成竖向排列,直接在目标区域输入 =TRANSPOSE(B5:E6),Microsoft 365 会自动把结果溢出填充到所有相邻的需要的单元格里。

TRANSPOSE 的完整语法是 =TRANSPOSE(array),它只有一个参数:
| 参数 | 是否必填 | 写法 | 作用 |
|---|---|---|---|
array |
必填 | 单元格区域、数组常量或返回数组的公式 | 把原区域的行列互换,横排会变竖排,竖排也能变横排 |
常用的写法还有这几种:=TRANSPOSE(A1:D1) 可以把一整行数据转成一整列;=TRANSPOSE(A1:A4) 可以把一整列数据转成一整行;=TRANSPOSE(FILTER(A2:D20,A2:A20="华东")) 能先筛选出所有“华东”相关的记录,再把筛选后的结果直接转方向。如果你用的是 WPS 或旧版 Excel,得先确认软件支不支持动态数组函数,旧版 Excel 需要提前手动选好对应大小的目标区域,用数组公式的方式回车确认。
第五步:检查溢出结果
输完公式回车之后,检查下转置的结果是不是完整展开了。用 Microsoft 365 的时候如果结果区域被其他内容挡住,单元格会提示 #SPILL! 错误,这时候不用改函数,把结果要占用的所有单元格清空就行。另一个常见问题是源区域没选全,比如只框了一半数据,最后转出来的结果自然也缺一半,重新选一遍完整的源区域再确认就好。

要是只需要一次性整理数据,用「复制 → 转置粘贴」最稳妥;后续还要频繁修改原表的话,用 TRANSPOSE 函数省心得多。文件要发布或者发给别人之前,建议把函数生成的结果再复制一遍,单独粘贴为值,这样对方打开文件的时候,不会因为源区域被删、被移动,或者对方的软件不支持动态数组而出错。











