如何将Excel中的多行转换为列(9种方法)

  • Share This
Hugh West

如果你正在寻找一些在Excel中把多行转换为列的最简单的方法,那么你会发现这篇文章对你很有帮助。 那么,让我们深入了解一下这篇主要文章。

下载工作手册

多行转换为列.xlsm

在Excel中把多行转换为列的9种方法

在这里,我们有一些产品的销售记录,这些产品的月份从 一月 5月 我们将尝试把行转换成列,这样我们就可以把各月的记录可视化为列标题,我们将利用这个数据集,主要是演示如何轻松地把多行转换成列。

我们已经使用了 微软Excel 365 在这里,你可以根据你的方便使用任何其他版本。

方法一:使用移位选项将Excel中的多行转换为列

在这里,我们将使用 移位 选项中的 粘贴选项 来轻松地将以下多行转换为列。

阶梯 :

➤ 按以下步骤复制整个数据集的范围。 CTRL+C .

➤ 选择你想有输出的单元格。 右键点击 在你的鼠标上,并选择 转位 选项,从 粘贴选项 .

然后,你将能够对你的数据进行转置,这意味着将行转换为列。

阅读更多:Excel 宏程序:将多行转换为多列(3个例子)

方法二:使用TRANSPOSE函数将多行转换为列

在本节中,我们将使用一个数组函数,即 输送功能 ,将以下数据集的多行转换为多列,为了收集数据,我们还在主数据集下面格式化了另一张表。

阶梯 :

➤ 在单元格中键入以下公式 B10 .

=transpose(b3:e8)

在这里。 输送 将改变范围内的行数 B3:E8 同时成列。

➤ 按 进入 .

之后,你会得到如下图所示的行与列之间的转换。

你必须按 ctrl+shift+enter 而不是按 进入 用于除Microsoft Excel 365以外的其他版本 .

阅读更多:如何在Excel中把列移到多行(6种方法)。

方法三:使用INDIRECT和ADDRESS函数

在这里,我们将使用 INDIRECT功能 , ADDRESS(地址)功能 , ROW功能 ,以及 COLUMN功能 将以下数据集的行转化为列。

阶梯 :

➤ 在单元格中使用以下公式 B10 .

=indirect(address( column(b3) - column($b$3) + row($b$3), row(b3) - row($b$3) + column($b$3))

在这里。 B3 是主数据集的起始单元。

  • COLUMN(B3) 返回单元格的列号 B3

    输出→ 2
  • COLUMN($B$3) 返回单元格的列号 $B$3 (绝对引用将固定这个单元格)

    输出→ 2

  • ROW($B$3) 返回单元格的行数 $B$3 (绝对引用将固定这个单元格)

    输出→ 3

  • ROW(B3) → 返回单元格的行数 B3

    输出→ 3
  • column(b3) - column($b$3) + row($b$3) 成为

    2-2+3 → 3

  • row(b3) - row($b$3) + column($b$3) 成为

    3-3+2 → 2

  • address( column(b3) - column($b$3) + row($b$3), row(b3) - row($b$3) + column($b$3)) 成为

    地址(3, 2) → 的交点处的引用。 第3行 第2栏

    输出→ $B$3

  • 间接(address(column(b3) - column($b$3) + row($b$3), row(b3) - row($b$3) + column($b$3)) 成为

    间接("$b$3") 返回该单元格的值 $B$3 .

    输出→ 月份

➤ 按 进入 .

➤ 拖动 填充手柄 工具到右侧并向下。

最后,你将能够把主数据集的多行改为多列。

阅读更多:Excel VBA:从单元格地址获取行和列号(4种方法)

方法四:使用INDEX函数将多行转换为列

在这一节中,我们将使用组合的 INDEX功能 , COLUMN功能 ,以及 ROW功能 来轻松地将多行转换为列。

阶梯 :

➤ 在单元格中应用以下公式 B10 .

=index($b$3:$e$8,列(a1),行(a1))

在这里。 $B$3:$E$8 是数据集的范围。 A1 是用来获取这个数据集的第一行和第一列的编号。 我们使用的是 列号 行数 争论和 行数 作为 栏目编号 参数,通过将这些值输入到 INDEX功能 .

➤ 按 进入 .

➤ 拖动 填充手柄 工具到右侧并向下。

之后,你会得到如下图所示的行到列的转换。

阅读更多:如何在Excel中添加多行和多列(各种可能的方法)。

方法五:使用INDEX-MATCH公式

在本节中,我们将使用 INDEX功能 ,以及 MATCH功能 用于将以下数据集的多行转换为列。

阶梯 :

➤ 首先,你必须手动将第一列转置为新表的第一行。

➤ 在单元格中键入以下公式 B11 .

=index($c$3:$c$8,match(b$10,$b$3:$b$8,0))

在这里。 $C$3:$C$8 是数据集的第二列,而 $B$3:$B$8 是数据集的第一列。

  • match(b$10,$b$3:$b$8,0) 成为

    MATCH("月",$B$3:$B$8,0) 返回带有字符串的单元格的行索引号 月份 在范围内 $B$3:$B$8

    输出→ 1

  • index($c$3:$c$8,match(b$10,$b$3:$b$8,0)) 成为

    index($c$3:$c$8,1) 返回范围内的第一个值 $C$3:$C$8

    输出→ 橙色

➤ 按 进入 并拖动 填充手柄 工具到右边。

然后,你将得到主数据集的第二列作为第二行。

同样,应用以下公式来完成其余的转换。

=index($d$3:$d$8,match(b$10,$b$3:$b$8,0))

=index($e$3:$e$8,match(b$10,$b$3:$b$8,0))

最后,你将得到第一个数据集的所有行作为第二个数据集的列。

阅读更多:如何在Excel中把多列转为行?

类似读物

  • [修正!]Excel中的行和列都是数字
  • 如何在Excel中隐藏行和列(10种方法)
  • Excel VBA:按行和列号设置范围(3个例子)

方法-6:使用VLOOKUP函数将多行转换为列

在本节中,我们将使用 VLOOKUP函数 将以下数据表的多行转置为列。

阶梯 :

➤ 在开始时,必须手动将第一列转置为新数据集的第一行。

➤ 在单元格中写下以下公式 B11 .

=vlookup(b$10,$b$3:$e$8,2,false)

在这里。 $B$3:$E$8 是数据集的范围。 B$10 是查询值,而 2 是用于查看数据集第二列中的数值。

➤ 按 进入 并拖动 填充手柄 工具到右边。

之后,你会得到主数据集的第二列作为第二行。

以同样的方式,使用下面给出的公式来完成其余的转换。

=vlookup(b$10,$b$3:$e$8,3, false)

=vlookup(b$10,$b$3:$e$8,4, false)

阅读更多:如何在Excel中添加行和列(3种简单方法)。

方法-7:使用Power Query

在这里,我们将使用 权力查询 但我们必须在数据集的开头添加一个额外的行,因为 权力查询 不会将第一行转化为列,因为它认为它是标题。

阶梯 :

➤ 转到 数据 标签>>。 获取和转换数据 集团>>。 从表/范围 选择。

在这之后, 创建表格 会出现向导。

➤ 选择数据范围,然后点击 我的表格有标题 选择。

➤ 按 认可 .

然后,在 强大的查询编辑器 窗口将出现。

➤ 选择数据集的所有列,按 CTRL 左键点击 同时在你的鼠标上 .

➤ 转到 转型 标签>>。 转位 选择。

你也可以让你的数据集的第一行成为标题。

➤ 转到 转型 标签>>。 使用第一行作为页眉 集团>>。 使用第一行作为页眉 选择。

然后,你将从主数据集的行中得到转换后的列。

➤ 要关闭这个窗口,请到 首页 标签>>。 关闭 & 载入 集团>>。 关闭 & 载入 选择。

这样一来,表格中的 强大的查询编辑器 窗口将被加载到一个新的工作表,名为 表5 .

阅读更多:如何在Excel中切换行和列(5种方法)

方法-8:使用VBA代码将多行转换为列

在本节中,我们将使用一个 VBA 代码,将多行转换为列。

阶梯 :

➤ 转到 开发商 标签>>。 视觉基础 选择。

然后,在 Visual Basic编辑器 将打开。

➤ 转到 插入 标签>>。 模块 选择。

在这之后,一个 模块 将被创建。

➤ 编写以下代码

 Sub conversionofmultiplerows() Dim multiple_rows_range, multiple_columns_range As Range Set multiple_rows_range = Application.InputBox( _ Prompt:="选择行的范围", Title:="Microsoft Excel", Type:=8) Set multiple_columns_range = Application.InputBox( _ Prompt:="选择目标单元格", Title:="Microsoft Excel", _ Type:=8) multiple_rows_range.Copy multiple_columns_range.PasteSpecialPaste:=xlPasteAll, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=True End Sub 

在这里,我们已经宣布 多行范围 ,以及 多列范围 作为 范围 ,它们被设置为我们将通过的范围。 输入框 通过使用 输入框 方法。

然后,我们将复制主数据集 多行范围 然后将其作为转置粘贴在目标单元格中 多列范围 .

➤ 按 F5 .

然后,你将得到一个输入框,你必须选择数据集的范围。 $B$3:$E$8 选择行的范围 框,并按 认可 .

然后,将弹出另一个输入框。

➤ 选择目标单元格 $B$10 在你想拥有转置的数据集的地方,然后按 认可 .

最终,你会从多行中得到转换后的列,即使主数据集的格式化也像下面这样。

阅读更多。 如何在Excel图表中切换行和列(2种方法)

方法9:使用OFFSET函数将多行转换为列和行

我们有一个包含一些学生姓名、科目和相应分数的列表,分多行。 现在,我们想把前三行转换成这个列表旁边的表格的三个不同的列。 同样,我们想把其余的行转换成每三行的列。 所以,你可以看到我们需要一次把行转换成列和行。

要做到这一点,我们将使用 关节 , ROW ,以及 COLUMN功能 .

阶梯 :

➤ 在单元格中键入以下公式 D4 .

=offset($b$4,column()-4+(row()-4)*3,0,1,1)

在这里。 $B$4 是列表的起始单元。

  • COLUMN() 返回单元格的列号 D4 应用该公式的地方。

    输出→ 4

  • COLUMN()-4 成为

    4-4 → 4 被减去,因为公式的起始单元格是在 第4栏 .

    输出→ 0

  • (ROW()-4)*3 成为

    (4-4)*3 → 4 被减去,因为公式的起始单元格是在 第4行 并乘以 3 因为我们要改造 3 每次都是将行变成列。

    输出→ 0

  • offset($b$4,column() -4+(row() -4)*3,0,1,1) 成为

    OFFSET($B$4,0+0,0,1,1)

    offset($b$4,0,0,1,1) → offset 将提取高度和宽度为 1 从细胞开始 $B$4 .

    输出 → 约瑟夫

➤ 按 进入 .

➤ 拖动 填充手柄 工具到右侧并向下。

最终,你将能够完成从多行到列和行的转换。

阅读更多:在Excel中移动行/列而不替换现有数据(3种最佳方法)。

练习部分

为了方便自己的练习,我们提供了一个 实践 的工作表中,像下面这样,在一个名为 实践 .请自己动手吧。

总结

在这篇文章中,我们试图涵盖在Excel中轻松转换多行到列的方法。 希望你会发现它很有用。 如果你有任何建议或问题,欢迎在评论区分享。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.