翻转数据(Microsoft Excel)
许多人将Excel用作简单的数据库管理器,在工作表的不同行中输入信息。在使用数据表时,可能会遇到需要反转表中行的顺序的情况。因此,如果您有一个包含十行的表,则行将从十行变为一行,而不是一列到十行。
Excel中没有固有功能,您不能以这种方式翻转数据。但是,可以通过执行以下常规步骤来使用Excel的排序功能来完成相同的操作:
。在数据表的左侧立即插入一个新列。
。在新列的单元格中,输入1到表中的行数。
。选择组成数据表的行。
。从数据菜单中选择排序。 Excel将显示“排序”对话框。
(请参见图1。)
。在“排序依据”下拉列表中,指示您要按新创建的列进行排序。
。单击降序作为排序类型。
。单击确定。 Excel将按照相反的顺序对数据进行重新排序。
如果您每天必须进行大量数据翻转,那么使用上述步骤可能会很累。在这种情况下,您可能需要创建一个宏来为您完成这项工作。以下宏FlipRows将达到目的:
Sub FlipRows() Dim vTop As Variant Dim vEnd As Variant Dim iStart As Integer Dim iEnd As Integer Application.ScreenUpdating = False iStart = 1 iEnd = Selection.Rows.Count Do While iStart < iEnd vTop = Selection.Rows(iStart) vEnd = Selection.Rows(iEnd) Selection.Rows(iEnd) = vTop Selection.Rows(iStart) = vEnd iStart = iStart + 1 iEnd = iEnd - 1 Loop Application.ScreenUpdating = True End Sub
为了使用此宏,您需要做的就是选择要翻转的行并运行它。该宏只会翻转行,而不会更改您的数据。换句话说,它不会添加任何信息列。
此方法的一个有趣功能是,您可以快速使其适应数据翻转列。您需要做的就是将单词“ Rows”的所有出现更改为“ Columns”。因此,以下内容成为新的宏:
Sub FlipColumns() Dim vTop As Variant Dim vEnd As Variant Dim iStart As Integer Dim iEnd As Integer Application.ScreenUpdating = False iStart = 1 iEnd = Selection.Columns.Count Do While iStart < iEnd vTop = Selection.Columns(iStart) vEnd = Selection.Columns(iEnd) Selection.Columns(iEnd) = vTop Selection.Columns(iStart) = vEnd iStart = iStart + 1 iEnd = iEnd - 1 Loop Application.ScreenUpdating = True End Sub
同样,只需选择要翻转的列,然后运行宏。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2653)适用于Microsoft Excel 97、2000、2002和2003。