Excel:如何隔行提取指定区域的数据并保存到新的列中

本文将指导您如何将隔行数据移动到Excel中的新列。如何使用Excel 2013/2016中的公式将每个奇数行移动到另一列。如何使用Excel中的VBA宏将每个偶数行移动到Excel中的其他列。

假设您有B1:B6范围内的数据列表,并且您希望将B1:B6范围内的每个奇数行或偶数行移动到工作表中的另一个新列。怎么做。本文将通过下面的两种方法来拷贝隔行数据来新列。

使用公式将隔行数据移动到新列


如果要将范围B1:B6中的每个偶数行移动到另一列,例如:列C,只需在C1单元格里输入将根据IF函数,ISEVEN函数和Row函数组成公式。然后按Enter键以应用此公式。将“自动填充”手柄向下拖动到其他单元格。

= IF(ISEVEN(ROW(B1)),B1,“”)

隔行数据移动到新列1

如果要将范围B1:B6中的每个奇数行移动到另一列,例如:列D,只需在单元格D1中键入以下公式:

= IF(ISODD(ROW(B1)),B1, “”)

隔行数据移动到新列2

使用VBA将隔行数据移动到新列


您还可以使用Excel VBA宏来实现将隔行数据移动到新列。只需执行以下步骤:

步骤1:打开excel工作簿,然后单击DEVELOPER选项卡下的“Visual Basic”命令,或者只需按“ALT + F11”快捷方式。

隔行数据移动到新列8

步骤2:然后将出现“Visual Basic编辑器”窗口。

步骤3:单击“插入” – >“模块”以创建新模块。

隔行数据移动到新列9

步骤4:将以下VBA代码粘贴到代码窗口中。然后单击“保存”按钮。

隔行数据移动到新列2


Sub MoveEveryOtherRow()

Set myRange = Application.Selection
Set myRange = Application.InputBox("select one range that you want to move:", "MoveEveryOtherRow", myRange.Address, Type:=8)
Set newRange = Application.InputBox("select one cell in new column:", "MoveEveryOtherRow", Type:=8)
Set myRange = myRange.Columns(1)
For i = 1 To myRange.Rows.Count Step 2
newRange.Resize(1, 2).Value = Array(myRange.Cells(i, 1).Value, myRange.Cells(i + 1, 1).Value)
Set newRange = newRange.Offset(1, 0)
Next
End Sub

步骤5:返回当前工作表,然后运行上面的excel宏。单击运行按钮。

隔行数据移动到新列4

步骤6:选择一个要移动的范围。单击确定按钮。

隔行数据移动到新列5

步骤7:在新列中选择一个单元格。单击确定按钮。

隔行数据移动到新列6

步骤8:让我们看看最后的结果:

隔行数据移动到新列7

Sidebar