下面是显示年份和学生成绩的数据集。

方法 1 – 使用选择性粘贴命令a) 从功能区粘贴特殊命令步骤:

选择B4:I9范围内的单元格。转到主页选项卡。单击剪贴板上的复制图标。

选择单元格B11。转到主页选项卡。单击剪贴板上的粘贴下拉图标。从下拉列表中选择选择性粘贴。

将弹出选择性粘贴对话框。

选中转置。单击确定。

结果,您会看到 B11:G18 范围内的新输出,这是数据集的转置形式。

b) 从键盘快捷键粘贴步骤:

选择整个数据集 (B4:I9)。按CTRL + C。

选择单元格 B11 作为目标范围的第一个单元格。按CTRL + ALT + V。

将打开选择性粘贴对话框。

按E选中移调。单击确定或按ENTER。

您会看到转置后的结果。

阅读更多内容:如何使用快捷方式在 Excel 中粘贴转置(4 种简单方法)

方法 2 – 转置表格并将其链接到初始数据步骤:

选择B4:I9范围内的单元格。按CTRL + C。选择单元格B11。按CTRL + ALT + V。单击选择性粘贴向导上的粘贴链接。

新数据集现在位于 B11:I16 单元格区域。还没有转置。我们刚刚将其与我们的原始数据集链接起来。

按CTRL + H 打开查找和替换对话框。在查找内容框中,输入等号 (=)。在替换为框中输入abc。单击全部替换按钮。

看起来我们已经丢失了新的数据集。

复制 B11:I16 范围中的新数据。按照前面的步骤将它们粘贴到单元格K4中的转置形式中。

转置的数据集现在在工作表中可见。

打开查找和替换向导。在查找内容和替换为框中输入abc和“=”。单击全部替换按钮。

我们已经生成了所需的链接和转置数据集。

*注意:如果更改原始数据集中的任何输入,转置后的数据也会相应更改。请查看此处随附的屏幕截图。

方法 3 – 应用 TRANSPOSE 函数步骤:

转到单元格 B11 并在公式栏中输入以下公式:=TRANSPOSE(B4:I9)公式分解

COLUMN 和 ROW 函数返回这些单元格引用的列号和行号。例如,COLUMN(B4) 返回2,ROW(B4) 返回4。 (ADDRESS(COLUMN(B4)-COLUMN($B$4)+ROW($B$4), ROW(B4)-ROW($B$4)+COLUMN($B$4)) 变为 地址(4,2)。

输出 → B4INDIRECT 函数返回存储引用中存在的值。 INDIRECT(ADDRESS(4,2)) 变为 INDIRECT(B4)。

输出→名称按ENTER键。

注意:TRANSPOSE 函数是动态的,这意味着如果您更改原始数据集中的任何内容,将在转置输出中自动更新。 但是,格式无法转移。所以,你必须手动完成。

类似读物

如何在 Excel 中将每 n 行转置为列(2 个简单方法)使用 Power Query 将 Excel 中的列转换为行如何在 Excel 中将重复的行转置为列(4 种方法)在 Excel 中将多列转置为一列(3 种便捷方法)如何在 Excel 中将多列转换为单行(2 种方法)方法 4 – 使用 INDIRECT 和 ADDRESS 函数步骤:

选择单元格B11。输入以下公式:=INDIRECT(ADDRESS(COLUMN(B4)-COLUMN($B$4)+ROW($B$4), ROW(B4)-ROW($B$4)+COLUMN($B$4)))按ENTER。

将光标移至单元格 B11 的右下角。它看起来像一个加号 (+)。这是填充手柄工具。将此工具水平拖动到单元格G11,。

将填充手柄工具垂直拖动到单元格G18。

我们有转置的数据集,但它没有格式化。

下面是格式化后的样子。

方法5 – 实现Power Query工具步骤:

选择数据集中的任意单元格。 (即单元格B4。)转到数据选项卡。单击获取和转换数据组中的来自表/范围。

将打开创建表对话框。

单击确定。

将打开 Power Query 编辑器窗口。

转到转换选项卡。选择使用标题作为第一行。

单击转置。

转到转换选项卡并选择使用第一行作为标题。

转到主页选项卡。单击关闭并加载下拉图标。选择结构和负载。

导入数据向导将打开。

选择现有工作表作为您要将数据放在哪里?在框中输入 B11 的单元格引用。单击确定。

Power Query 编辑器对话框将关闭,转置后的数据将加载到“Power Query” 工作表。

方法 6 – 应用 VBA 宏步骤:

转到开发者选项卡。单击代码组中的Visual Basic。

将出现Microsoft Visual Basic for Applications窗口。

转到插入选项卡。从选项中选择模块。

Excel 将插入一个代码模块。

将以下代码粘贴到模块中:Option Explicit

Sub Rows_to_Columns()

Dim Sr_Rng As Range

Dim Dst_Rng As Range

Set Sr_Rng = Application.InputBox(Prompt:="Mark the range to flip", Title:="ExcelDemy: Transpose Tool", Type:=8)

Set Dst_Rng = Application.InputBox(Prompt:="Mark the cell where you want to place the transposed range", Title:="ExcelDemy: Transpose Tool", Type:=8)

Sr_Rng.Copy

Dst_Rng.Select

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

Application.CutCopyMode = False

End Sub

代码分解

我们提到了子过程名称并声明了变量。我们插入了两个输入框。输入框中接收到的值将由变量获取。我们应用复制方法来复制范围并将其粘贴到第二个变量范围中的转置形式中。我们用 End Sub 结束了子过程。将文件另存为启用宏的工作簿并返回到VBA工作表。按照 GIF 来了解接下来的过程。

我们使用 VBA 宏将行转换为列。

方法 7 – 在 Excel 中使用条件步骤:

以下是包含学生分数的数据集。它包含名称以及B和C列中相应的标记 。

在 E4:H7 中创建一个新表格,标题为 Name 和 Marks 。

转到单元格 E5 并插入以下公式:=INDEX($B$5:$B$13, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$13), 0))公式分解

COUNTIF($E$4:$E4, $B$5:$B$13) 返回一个 0 数组,因为它找不到文本字符串B5:B13 中的>名称然后, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$13), 0) 变为 MATCH(0, {0,0,0,0, 0,0,0,0,0}, 0)。

输出 → 1INDEX($B$5:$B$13, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$13), 0)) 变为 INDEX($B $5:$B$13, 1)。

输出→约翰按ENTER。

用于获得分数的公式如下:

=IFERROR(INDEX($C$5:$C$13, MATCH(0, COUNTIF($E5:E5, $C$5:$C$13) + IF($B$5:$B$13<>$E5,1,0),0)),0)

您可以关注我们网站上的文章如何根据 Excel 中的条件将行转列。

实践部分

下载练习手册您可以下载以下 Excel 工作簿。

将行转置为列.xlsm