如何在Excel中翻转数据的列和行(垂直和水平)。

  • Share This
Michael Brown

本教程展示了在Excel中垂直和水平翻转表格的几种快速方法,保留了原始格式和公式。

在Excel中翻转数据听起来是一个微不足道的一键式任务,但令人惊讶的是,没有这样的内置选项。 在需要将按字母顺序排列的列中的数据顺序或从最小到最大的顺序翻转的情况下,显然可以使用Excel的排序功能。 但如何翻转没有排序的数据列? 或者,如何将表格中的数据顺序横向翻转成行?你马上就会得到所有的答案。

    在Excel中垂直翻转数据

    只要有一点创意,你就可以想出一些不同的方法来翻转Excel中的一列:通过使用内置的功能、公式、VBA或特殊工具。 每种方法的详细步骤如下。

    如何在Excel中翻转一列

    纵向颠倒一列数据的顺序,请执行以下步骤。

    1. 在你想翻转的列旁边添加一个辅助列,用一串数字填充该列,从1开始。
    2. 将数字列按降序排序。 为此,选择帮助列中的任何单元格,进入到 数据标签 > 排序 & 筛选 组,并点击 从大到小的排序 按钮(ZA)。

    如下面的截图所示,这不仅会对B列的数字进行排序,也会对A列的原始项目进行排序,颠倒了行的顺序。

    现在你可以安全地删除辅助列,因为你不再需要它了。

    提示:如何快速用序列号填充一栏

    用一串数字填充一列的最快方法是使用Excel自动填充功能。

    • 在第一个单元格中输入1,在第二个单元格中输入2(下面截图中的B2和B3单元格)。
    • 选择你刚刚输入数字的单元格,双击选择的右下角。

    就这样!Excel将自动为该列填充序列号,直至最后一个单元格的相邻列的数据。

    如何在Excel中翻转表格

    上述方法也适用于颠倒多列的数据顺序。

    有时(最常见的是当你在排序前选择整列数字时),Excel可能会显示 分类警告 在这种情况下,请检查 扩大选择范围 选项,然后点击 分类 按钮。

    提示:如果你想 切换行和列 在Excel中使用TRANSPOSE函数或其他方式对数据进行转置。

    如何使用公式在Excel中翻转列

    另一种翻转一列的方法是使用这个通用公式。

    INDEX( 范围 , ROWS( 范围 ))

    对于我们的样本数据集,公式如下。

    =index($a$2:$a$7,rows(a2:$a$7))

    ...并将A列无懈可击地逆转。

    这个公式如何运作

    该公式的核心是INDEX(array, row_num, [column_num])函数,该函数返回一个元素在 阵列 基于你指定的行号和/或列号。

    在数组中,你输入你想要翻转的整个列表(本例中为A2:A7)。

    行数是由ROWS函数计算出来的。 在其最简单的形式中,ROWS(array)返回在 阵列 在我们的公式中,巧妙地使用了相对和绝对引用,从而实现了 "翻转列 "的技巧。

    • 对于第一个单元格(B2),ROWS(A2:$A$7)返回6,所以INDEX得到列表中的最后一项(第6项)。
    • 在第二个单元格(B3)中,相对引用A2变为A3,因此ROWS(A3:$A$7)返回5,迫使INDEX获取倒数第二个项目。

    换句话说,ROWS为INDEX创建了一种递减的计数器,这样它就从最后一个项目向第一个项目移动。

    提示:如何用数值替换公式

    现在你有两列数据,你可能想用计算值替换公式,然后删除额外的一列。 为此,复制公式单元格,选择你想粘贴数值的单元格,然后按Shift+F10再按V,这是应用Excel的粘贴特殊> 值选项的最快方法。

    更多信息,请参见如何在Excel中用数值替换公式。

    如何用VBA翻转Excel中的列

    如果你有一些VBA的经验,你可以使用下面的宏来扭转一列或几列的数据顺序。

    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 = "垂直翻转列" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox( "Range" , xTitleId, WorkRng.Address, Type :=8) Arr = WorkRng.Formula Application.ScreenUpdating = False Application.Calculation = xlCalculationManual For j = 1 ToUBound (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.公式 = Arr 应用程序.屏幕更新 = True 应用程序.计算 = xlCalculationAutomatic End Sub

    如何使用翻转列宏

    1. 打开Microsoft Visual Basic for Applications窗口( Alt + F11 )。
    2. 点击 插入 > 模块 ,并在代码窗口中粘贴上述代码。
    3. 运行宏( F5 )。
    4. ǞǞǞ 翻转栏 对话框弹出,提示你选择一个要翻转的范围。

    你用鼠标选择一个或多个列,不包括列标题,点击 认可 并在瞬间得到结果。

    要保存宏,请确保将你的文件保存为 启用Excel宏的工作簿 .

    如何在Excel中翻转数据,保留格式和公式

    通过上述方法,你可以很容易地扭转列或表中的数据顺序。 但是,如果你不仅希望翻转数值,而且还希望翻转单元格格式,怎么办? 此外,如果你表中的一些数据是公式驱动的,你想防止翻转列时公式被破坏,怎么办? 在这种情况下,你可以使用 翻转 我们的Ultimate Suite for Excel包含的功能。

    假设你有一个格式很好的表格,如下图所示,其中一些列包含数值,一些列包含公式。

    你正在寻找翻转你的表格中的列,同时保持格式(零数量的行的灰色阴影)和正确的计算公式。 这可以通过两个快速步骤完成。

    1. 选定表格中的任何单元格,到 阿博比特数据 标签> 转型 组,并点击 翻转 > 垂直翻转 .
    2. 垂直翻转 对话窗口,配置以下选项。
      • 选择你的范围 框,检查范围参考并确保标题行不包括在内。
      • 选择 调整单元格引用 选项,并检查 保留格式化 箱子。
      • 可选的是,选择 创建一个备份副本 (默认选择)。
      • 点击 翻转 按钮。

    完成了!表格中的数据顺序被颠倒过来,格式被保留,公式中的单元格引用也被适当调整。

    在Excel中水平翻转数据

    到目前为止,在本教程中,我们已经将列颠倒了。 现在,让我们看看如何在水平方向上扭转数据顺序,即从左到右翻转一个表格。

    如何在Excel中翻转行

    由于在Excel中没有对行进行排序的选项,你需要首先将行改为列,然后对列进行排序,再将表转回。 以下是详细步骤。

    1. 使用Paste Special> Transpose功能将列转换为行。 结果,你的表格将经历这种转变。
    2. 你的中间结果将看起来像这样。
    3. 使用 粘贴特殊> 移位 再来一次,把你的桌子转回来。

    注意:如果你的源数据包含公式,它们可能在转置操作中被破坏。 在这种情况下,你必须手动恢复公式。 或者你可以使用我们的终极套件中的翻转工具,它将自动为你调整所有的参考。

    用VBA水平颠倒数据顺序

    这里有一个简单的宏,可以快速将Excel表中的数据水平翻转。

    Sub FlipDataHorizontally() 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 = "Flip Data Horizontally" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox(" Range" , xTitleId, WorkRng.Address, Type :=8) Arr = WorkRng.Formula Application.ScreenUpdating = False Application.Calculation =xlCalculationManual 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.公式 = Arr 应用程序.屏幕更新 = True 应用程序.计算 = xlCalculationAutomatic End Sub

    要将该宏添加到你的Excel工作簿中,请遵循以下步骤。 一旦你运行该宏,将出现以下对话窗口,要求你选择一个范围。

    你选择整个表格,包括标题行,然后点击 认可 稍后,行中的数据顺序将被颠倒。

    用Ultimate Suite for Excel翻转行中的数据

    与翻转列类似,你可以使用我们的Excel终极套件来翻转行中的数据顺序。 只要选择一个你想翻转的单元格区域,转到 阿博比特数据 标签> 转型 组,并点击 翻转 > 水平翻转 .

    水平翻转 对话窗口,选择适合你的数据集的选项。 在这个例子中,我们处理的是数值,所以我们选择 只粘贴数值 保存格式化 :

    点击 翻转 按钮,你的桌子就会在眨眼间从左到右颠倒过来。

    这就是在Excel中翻转数据的方法。 感谢你的阅读,希望下周能在我们的博客上见到你

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.