在 Excel 中,经常需要将行与列的位置进行互换,这种操作也常被称为“表格转置”。无论是将横向排列的月度销售数据改为纵向展示,还是想把某列产品名称转换为一行的标题,如果还在手动逐个复制粘贴,效率会非常低。下面整理了三种行之有效的 Excel 行列互换方法,分别适用于不同场景,你可以根据实际需求灵活选用。

先说最简单快捷的方式:假如你只是临时需要一次性调整表格方向,比如领导要求马上整理一份格式正确的报表,那么直接用第一种方法就能解决问题。
用选择性粘贴一键转置(静态)
这种方法不需要任何公式,操作步骤非常直观,适合对数据进行一次性转置处理。
先选中你要转换的原始数据区域,记得把标题行和内容都包含进去,然后按下 Ctrl + C 复制。接着,在希望放置转置结果的目标起始单元格(比如空白区域的 E1 格)上右键单击,从弹出菜单中选择“选择性粘贴”,在对话框中勾选【转置】选项,最后点击“确定”。
仅需这一步骤,复制好的数据就会自动调换行列方向并粘贴到目标位置。不过需要注意:目标区域必须是完全空白的单元格区域,否则 Excel 会提示“无法对多重选择区域执行此操作”,导致转换失败。
用TRANSPOSE函数动态转置
如果你的原始数据表经常会被更新,并且希望转置后的结果能够跟随原始区域自动同步变化,那么推荐使用 TRANSPOSE 函数来实现动态转换。
这个方案有两种实现方式,具体取决于你使用的 Excel 版本。
方法一:手动选区加数组公式(传统方法)
首先,你需要数清楚原始数据有多少行和多少列。例如,原始区域为 A1:D6(即 4 列 × 6 行),那么你需要在目标位置选择一个【6 列 × 4 行】的空白区域(比如 G1:L4),行列数正好颠倒过来。然后,在选区内左上角的单元格(G1)中输入公式:=TRANSPOSE(A1:D6),注意不要遗漏等号。最后,按 Ctrl + Shift + Enter 组合键确认(如果是旧版 Excel),公式会自动填满整个选定区域,生成转置结果。
方法二:新版动态数组自动溢出(推荐)
如果你使用的是 Excel 365 或 Excel 2021 及以上版本,操作会更加简便。你只需在任意一个空白单元格中直接输入 =TRANSPOSE(A1:D6),然后按 Enter 键即可。Excel 会自动在右侧和下方“溢出”出所有转置后的数据,完全不需要提前选中整块区域,省时省力。
需要特别留意一点:如果原始数据区域中包含了空行或空列,TRANSPOSE 函数会把这些空白位置原封不动地转置过去,可能会导致结果结构出现混乱。因此,在调用此函数之前,最好先将原始数据中不必要的空行、空列清理干净。
用Power Query做可复用的结构化转置
前面两种方法更适合一次性或偶尔的转置需求。但如果你每周、每月都需要处理一批格式完全相同的报表,比如每次都要把“产品-月份”的横向表格转成“月份-产品”的纵向格式,那么重复操作会非常繁琐。在这种情况下,Power Query 才是真正省力的解决方案——它能够完整记录你的操作步骤,下次只需要点击一次“刷新”,结果就会自动更新。
操作流程如下:选中原始数据中的任意一个单元格,点击菜单栏的「数据」选项卡,然后选择「从表格/区域」。在弹出的对话框中勾选「表包含标题」,点击“确定”,数据就会被加载到 Power Query 编辑器中。
进入编辑器后,点击左上角的“全选”按钮,或者按 Ctrl + A 选中所有数据。接着,在任意一个列标题上右键单击,选择「转置」。你会发现转置后的第一行变成了数字编号(如 Column1、Column2),这是正常现象。然后,点击「转换」选项卡下的「使用第一行作为标题」,列名就会恢复为正确的内容。
最后,点击左上角的「关闭并上载」,转置后的新表就会作为一个独立的工作表插入到当前工作簿中。今后,只要原始数据发生变动,你只需在新表上右键选择「刷新」,它就能自动重新计算并更新结果,从此彻底摆脱重复劳动。
