KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在 Excel 中按相反顺序复制并粘贴行或列?

作者Xiaoyang修改日期

有时,您可能需要将一列或一行数据以相反的顺序(垂直或水平)复制并粘贴,如下图所示。如何在 Excel 中快速轻松地实现这一操作?

粘贴后数据显示为反向顺序的截图

使用公式以相反顺序复制并粘贴列或行列表

使用 VBA 代码以相反顺序复制并粘贴多列或多行范围

使用强大功能以相反顺序复制并粘贴多列或多行范围


使用公式以相反顺序复制并粘贴列或行列表

以垂直相反顺序复制并粘贴列列表

若要反转一列单元格,请使用以下公式:

在要反转列顺序的空白单元格中输入或复制以下公式:

=OFFSET($A$15,-(ROW(A1)-1),0)

注意:在上述公式中,A1 是该列的首个单元格,而 A15 是该列的最后一个单元格。

然后,向下拖动填充柄至所需单元格,即可按相反顺序提取单元格值,如下图所示:

使用公式获取列数据反向顺序的截图


以水平相反顺序复制并粘贴行列表

要以相反顺序复制并粘贴一行列表,请使用以下公式:

在空白单元格中输入或复制此公式:

=OFFSET($A$1,,COUNTA(1:1)-COLUMN(A1),)

注意:在上述公式中,A1 是该行的第一个单元格,而 1:1 表示数据所在的行号。如果您的数据位于第 10 行,请将其更改为 10:10.

然后,向右拖动填充柄至要应用此公式的单元格,直到提取所有值,您将获得水平反转的所有值,见下图:

使用公式获取行数据反向顺序的截图


使用 VBA 代码以相反顺序复制并粘贴多列或多行范围

如果需要以相反顺序复制并粘贴多列或多行区域,下面我将为您介绍几段 VBA 代码,助您快速轻松地解决这一问题。请按以下步骤操作:

以垂直相反顺序复制并粘贴列列表

1. 首先,将您的数据复制并粘贴到新位置,然后按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。

2. 单击插入 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:以垂直相反顺序复制并粘贴单元格范围

Sub Flipvertically()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For j = 1 To UBound(Arr, 2)
    k = UBound(Arr, 1)
    For i = 1 To UBound(Arr, 1) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(k, j)
        Arr(k, j) = xTemp
        k = k - 1
    Next
Next
WorkRng.Formula = Arr
End Sub

3. 然后,按下 F5 键运行此代码,将弹出提示框,提醒您选择要垂直反转的数据区域,如下图所示:

运行 VBA 代码后选择要反转的单元格区域的截图

4. 然后,单击确定按钮,数据区域即可垂直反转,如下图所示:

原始列数据的截图一个箭头的截图反转后的数据区域截图

以水平相反顺序复制并粘贴单元格范围

要以水平顺序反转数据区域,请使用以下 VBA 代码:

VBA 代码:以水平相反顺序复制并粘贴单元格范围

Sub Fliphorizontally()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For i = 1 To UBound(Arr, 1)
    k = UBound(Arr, 2)
    For j = 1 To UBound(Arr, 2) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(i, k)
        Arr(i, k) = xTemp
        k = k - 1
    Next
Next
WorkRng.Formula = Arr
End Sub

运行此代码后,您将获得如下图所示的结果:

原始行数据的截图
一个向下箭头的截图
反转后的数据截图

使用强大功能以相反顺序复制并粘贴多列或多行范围

如果您不熟悉上述公式和 VBA 代码,这里推荐一款简单易用的工具——Kutools for Excel,借助其垂直翻转选区水平翻转选区功能,只需单击一次,即可轻松实现单元格区域的垂直或水平反转。

提示:要使用 Kutools for Excel垂直翻转选区水平翻转选区功能,请先下载该工具,即可快速轻松地应用这些功能。

安装 Kutools for Excel 后,请按以下操作:

以水平相反顺序复制并粘贴单元格范围

1. 选择单元格区域,然后点击 Kutools > 范围 > 垂直翻转选区 > 全部(仅翻转内容),见下图:

启用“垂直翻转区域”功能的截图

2. 随后,单元格区域的值将立即垂直反转,如下图所示:

翻转前数据的截图一个箭头 2 的截图翻转后的结果截图

以水平相反顺序复制并粘贴单元格范围

1. 选择单元格区域,然后点击 Kutools > 范围 > 水平翻转选区 > 全部(仅翻转内容),见下图:

启用“水平翻转区域”功能的截图

2. 随后,所选区域中的所有单元格值将立即水平反转,如下图所示:

翻转前行数据的截图
一个向下箭头 2 的截图
翻转所选水平区域后的结果截图

立即点击下载 Kutools for Excel,免费试用吧!


更多相关复制粘贴文章:

  • 将合并复制并粘贴到 Excel 的单个单元格中
  • 通常,当您复制合并单元格并粘贴到其他位置时,合并格式会一并被粘贴。但如果您希望将合并内容粘贴到单个单元格中(如下图所示),以便更灵活地处理数据,本文将为您介绍具体操作方法。
  • 复制一列并仅粘贴唯一记录到 Excel 中
  • 对于包含大量重复项的列,您可能希望获得一份仅含唯一值的副本。如何实现这一目标?本文将为您介绍两种方法,助您从 Excel 列中轻松提取并粘贴唯一记录。
  • 从受保护的工作表中复制数据
  • 假设您收到他人发来的 Excel 文件,其中的工作表已被用户保护。现在,您希望将原始数据复制并粘贴到一个新的工作簿中。但由于该用户在保护工作表时取消勾选了“选定锁定单元格”和“选择未锁定单元格”选项,导致受保护工作表中的数据无法被选中或复制。

  • 超级编辑栏(轻松编辑多行文本和公式);阅读版式(轻松阅读和编辑大量单元格);粘贴到筛选范围……
  • 合并单元格/行/列并保留数据;分割单元格内容;合并重复行并求和/求平均值……防止重复项单元格;比较区域……
  • 选择重复或唯一行;选择空白行(所有单元格均为空);超级查找和模糊查找多个工作簿中的内容;随机选择……
  • 精准公式复制多个单元格而不更改公式引用;自动创建引用到多个工作表;插入项目符号、复选框等更多功能……
  • 收藏并快速插入公式、区域、图表和图片;加密单元格并设置密码;创建邮件列表并发送电子邮件……
  • 提取文本、添加文本、删除某位置字符、删除空格;创建并打印数据分页统计;在单元格内容与批注之间转换……
  • 超级筛选(保存并应用筛选方案到其他工作表);高级排序按月/周/日、频率等分组;特殊筛选按加粗、倾斜等格式……
  • 合并工作簿和工作表;汇总表格基于关键列;分割数据到多个工作表批量转换 xls、xlsx 和 PDF……
  • 数据透视表按周数、星期几等分组……显示未锁定、选区锁定并以不同颜色标识;高亮显示包含公式/名称的单元格……
kte tab 201905
  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑与阅读,大幅提升多文档操作效率!
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中操作。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!
officetab bottom