如何在 Excel 中将列转换为行?

2025年3月17日 | 阅读 8 分钟

您将信息或数据存储在各种行和列中。这可能需要大量跟踪。在错误输入数据之后,最常见的错误之一是转置列和行。有些人创建 Excel 电子表格,其中主字段是水平的。其他人则喜欢数据垂直排列在列中。有时这些偏好会导致您想要转置 Excel 数据的情况。

使用 Excel,将条目复制/粘贴到其他位置或重新开始是错误的,因为它会将所有条目粘贴到同一行或同一列中。在“选择性粘贴”菜单中有一个非常简单的修复方法,可以纠正您的错误,将列转换为行而无需重新开始。

如果您的工作表中的数据位于需要旋转以重新排列到行中的列中,请使用 转置 功能。通过它,您可以快速将数据从列切换到行,反之亦然。

转置 Excel 中的数据是许多用户熟悉的任务。您经常构建一个复杂的表格,然后才意识到将其旋转以更好地分析或以图表形式呈现数据是完全合理的。

微软一定预料到了这个问题,因为他们提供了几种方法来切换列和行。这些解决方案适用于 Excel 2016、2013、2010、2007 和更低版本的所有版本。

使用粘贴在 Excel 中将行转换为列

假设您有一个类似于下面所示的数据集。国家名称以列的形式组织,但国家列表太长,所以我们最好将列更改为行,以便表格适应屏幕。

How to Convert Columns to Rows in Excel

要将行切换为列,您需要按照以下步骤操作,例如

步骤 1: 选择表格的原始数据。

要快速选择整个表格,即电子表格中所有包含数据的单元格,请按 Ctrl + Home,然后按 Ctrl + Shift + End。

步骤 2: 通过右键单击选择或从上下文菜单中选择 复制 或按 Ctrl + C 来复制选定的单元格。

How to Convert Columns to Rows in Excel

步骤 3: 选择目标范围的第一个单元格。

务必选择一个落在包含原始数据的范围之外的单元格,以免复制区域和粘贴区域重叠。

How to Convert Columns to Rows in Excel

例如,如果您当前有 9 列和 5 行,则转换后的表格将有 5 列和 9 行。

步骤 4: 右键单击目标单元格,然后从上下文菜单中选择 选择性粘贴

How to Convert Columns to Rows in Excel

步骤 5: 然后勾选 转置 复选框。

How to Convert Columns to Rows in Excel

步骤 6: 单击 确定 按钮。您将获得表格的转置结果。

How to Convert Columns to Rows in Excel

注意:如果您的源数据包含公式,请根据它们是否应该调整或保持锁定到某些单元格,正确使用相对和绝对引用。

如您所见,“选择性粘贴”功能允许您执行行到列或列到行的转换。此方法还会复制您的原始数据格式,这为其增加了另一个有利的论据。

然而,这种方法有两个缺点,使其无法被称为 Excel 中转置数据的完美解决方案

  1. 它不适合旋转功能齐全的 Excel 表格。如果您复制整个表格,然后打开 选择性粘贴对话框,您会发现 转置 选项被禁用。在这种情况下,您需要复制没有列标题的表格,或者首先将其转换为范围。
  2. 选择性粘贴 选项中,转置 不会将新表格与原始数据链接,因此它仅适用于一次性转换。每当源数据更改时,您都需要重复此过程并旋转表格。

如何转置表格并与原始数据链接

让我们看看如何使用熟悉的 选择性粘贴 技术将行切换到列,但将结果表格连接到原始数据集。

这种方法的优点在于,每当您更改源表格的数据时,翻转的表格将反映这些更改并相应更新。请按照以下步骤转置表格并将其与原始数据链接。

步骤 1: 复制要转换为列或要更改为行的行。

步骤 2: 在同一工作表或另一个工作表中选择一个空单元格。

步骤 3: 如上所述,打开 选择性粘贴 对话框,然后单击左下角的 粘贴链接

How to Convert Columns to Rows in Excel

您将得到类似以下的结果

How to Convert Columns to Rows in Excel

步骤 4: 选择新表格并打开 Excel 的“查找和替换”对话框,或按 Ctrl + H 直接进入 替换 选项卡。

步骤 5: 将所有“=”字符替换为“xxx”或任何在实际数据中不存在的其他字符。

How to Convert Columns to Rows in Excel

这将使您的表格变成您在下面的截图中看到的样子。现在您需要按照以下两个步骤操作。

How to Convert Columns to Rows in Excel

步骤 6: 复制包含“xxx”值的表格,然后使用 选择性粘贴 按钮和 转置 将列翻转为行。

How to Convert Columns to Rows in Excel

步骤 7: 最后,再次打开 查找和替换 对话框以反转更改,即用“=”替换所有“xxx”以恢复与原始单元格的链接。

How to Convert Columns to Rows in Excel

这种方法有点长,但解决方案很优雅。这种方法唯一的缺点是原始格式在此过程中丢失,您需要手动恢复它。

如何使用公式将列转换为行

在 Excel 中动态地将列转换为行的一个简单方法是使用 TRANSPOSE 或 INDEX/ADDRESS 公式。这些公式也保持与原始数据的连接,但工作方式不同。

1. 使用 TRANSPOSE 函数将行转换为列

TRANSPOSE 函数专门用于在 Excel 中转置数据。此函数具有以下语法。

在此示例中,我们将转换按销售额列出的国家/地区的相同表格。

How to Convert Columns to Rows in Excel

您需要按照以下步骤使用 TRANSPOSE 函数转换表格场景。

步骤 1: 计算原始表格中的行数和列数,然后选择相同数量的空白单元格,但方向或工作表不同。

我们的示例表格有 8 列和 5 行,包括标题。由于 TRANSPOSE 函数将把列转换为行,我们选择一个 5 列和 8 行的范围。

步骤 2: 在选定的空单元格中,写入以下公式


How to Convert Columns to Rows in Excel

步骤 3: 由于我们的公式需要应用于多个单元格,请按 Ctrl + Shift + Enter 使其成为数组公式。

您将得到一个表格,其中列转换为行,行转换为列,如下所示。

How to Convert Columns to Rows in Excel

TRANSPOSE 函数的优点

使用 TRANSPOSE 函数的主要好处是旋转后的表格保留了源表格的连接。每当您更改源数据时,转置后的表格将相应地更改。

TRANSPOSE 函数的缺点

  • 原始表格格式不会保存在转换后的表格中。
  • 如果原始表格中有任何空单元格,转置后的单元格将包含 0。要解决此问题,请使用 TRANSPOSE 函数和 IF 函数的组合。
  • 您不能编辑旋转表格中的任何单元格,因为它非常依赖于源数据。如果您尝试更改某些单元格值,您将收到“您无法更改数组的一部分”错误。
  • 此函数既好用又易于使用,但它确实缺乏灵活性,因此在许多情况下可能不是最好的选择。

2. 使用 INDIRECT 和 ADDRESS 函数将列转换为行

下面的示例将使用两个函数的组合。这有点棘手。假设您的数据有 5 列和 5 行,请按照以下步骤使用 INDIRECT/ADDRESS 函数转换表格。

步骤 1: 在目标范围的最左侧单元格中输入以下公式,然后按 Enter 键。


How to Convert Columns to Rows in Excel

步骤 2: 通过拖动选定单元格右下角的小黑十字,将公式向右和向下复制到所需的行数和列数。

How to Convert Columns to Rows in Excel

在新创建的表格中,所有列都转换为行,所有行都转换为列。

How to Convert Columns to Rows in Excel

如果您的数据不是从第 1 行和 A 列开始,您将不得不使用稍微复杂一点的公式

A1 是源表格的左上角单元格。另外,请记住绝对和相对单元格引用的使用。

然而,与原始数据相比,转置后的单元格颜色看起来非常朴素和暗淡。要恢复原始格式,只需按照以下三个简单步骤操作

步骤 1: 复制原始表格。

步骤 2: 选择结果表格。

步骤 3: 右键单击结果表格,选择 粘贴选项,然后单击 格式 按钮。

这个公式是如何工作的

现在您知道如何使用 INDIRECT/ADDRESS 函数的组合,您可能想了解该公式实际上在做什么。

  • 顾名思义,INDIRECT 函数用于间接引用单元格。但是 INDIRECT 的真正强大之处在于它可以将任何字符串转换为引用,包括您使用其他函数和其他单元格值构建的字符串。而这正是我们要做的事情。
  • 我们在公式中使用了另外 3 个函数,例如 ADDRESS、COLUMN 和 ROW。
  • ADDRESS 函数分别通过您指定的行号和列号获取单元格地址。
  • 在我们的公式中,我们以相反的顺序提供坐标,这正是诀窍所在!换句话说,公式的这一部分 ADDRESS(COLUMN(A1), ROW(A1)) 将行交换为列,即获取列号并将其更改为行号,然后获取行号并将其转换为列号。
  • 最后,INDIRECT 函数输出旋转后的数据。

INDIRECT/ADDRESS 函数的优点

  • 此公式提供了一种更灵活的方式来在 Excel 中将行转换为列。
  • 它允许在转置后的表格中进行任何更改,因为您使用的是常规公式,而不是数组公式。

INDIRECT/ADDRESS 函数的缺点

原始数据的格式丢失。同时,您可以快速恢复它。

Excel 中的转置数据 VBA 宏

要自动化 Excel 中列到行的转换,您可以使用以下宏

注意:使用 VBA 转置有 65536 个元素的限制。如果您的数组超过此限制,额外的数据将被静默丢弃。

如何使用宏将列转换为行

将宏插入工作簿后,请按照以下步骤旋转表格场景。

步骤 1: 打开目标工作表并按 Alt + F8 键。

步骤 2: 选择 TransposeColumnsRows 宏,然后单击 运行 按钮。

步骤 3: 选择要转置的范围,然后单击 确定 按钮。

步骤 4: 选择目标范围的左上角单元格。

步骤 5: 然后单击 确定 按钮。