跳至主要内容

如何在 Excel 中将每隔一行移动到列?

Author: Sun Last Modified: 2025-07-31
move every other row to column sample data

在 Excel 中处理数据时,尤其是导入的或非结构化的数据集,您经常会发现名称和相关值垂直排列在单列中。为了使这些数据更具可读性和可用性,通常需要将其转换为表格格式——将每隔一行移动到列中。


使用公式将每隔一行移动到列

这是一种简单直接的方法,利用 Excel 的 INDEX 函数提取交替行并将它们显示为列。如果您希望将名称转换为一列,将年龄转换为下一列,请应用以下公式:

1. 在单元格 C2 中,输入以下公式到空白单元格中,然后根据需要向下拖动公式。此公式从第 2 行开始检索每隔一行的值(名称)。

=INDEX($A:$A, (ROW(A1)-1)*2 + 2)
提示:该公式通过将当前行号乘以 2 并加 2 来引用正确的位置。
extract every other cell in a column with formula

2. 在单元格 D2 中,输入以下公式以提取交替数据,并向下拖动公式填充单元格。

 =INDEX($A:$A, (ROW(A1)-1)*2 + 3)
提示:该公式从包含年龄的行(奇数行,从第 3 行开始)中获取值。
extract every other cell in another column with formula
公式解释:
  • INDEX($A:$A, ...):查找 A 列并返回特定行号的值。
  • ROW(A1):返回当前行号。在 A1 中,它返回 1。当您向下拖动公式时,它变为 A2(第 2 行)、A3(第 3 行)等。
  • (ROW(A1)-1)*2 + 2:计算从 A 列中提取的行号。

因此,该公式从 A2、A4、A6、A8… 提取值,这意味着每隔一行(从第 2 行开始)。


使用 Kutools for Excel 将每隔一行移动到列

如果您更喜欢一种更用户友好且无需公式的解决方案,Kutools for Excel 提供了一项功能,可以轻松地将行转置为列。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

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

  1. 点击 Kutools > 区域 > 转换区域。
    extract every other cell in a column with formula
  2. 在“转换区域”对话框中,设置以下操作:
    • 选择要移动每隔一行的区域
    • 在转换类型部分中勾选 单列转区域,
    • 然后勾选 固定值 并在每条记录的行数部分列表中选择或输入 2。
    • 最后,点击 确定 按钮。
      extract every other cell in a column with formula
  3. 在随后弹出的对话框中,选择一个单元格放置结果,见截图:
    extract every other cell in a column with formula
  4. 点击 确定,Kutools 将自动将每隔一行移动到单独的列中。
    extract every other cell in a column with formula

使用 VBA 代码将每隔一行移动到列

如果您经常需要执行此任务,VBA 宏可以自动化该过程,使其更快、更高效。

1. 在键盘上同时按下 F11 + Alt 键打开 Microsoft Visual Basic for Applications 窗口。

2. 然后点击 插入 > 模块 插入一个新的模块窗口。然后将以下 VBA 代码复制到窗口中。

VBA:将每隔一行移动到列。

Sub MoveRange()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set InputRng = InputRng.Columns(1)
For i = 1 To InputRng.Rows.Count Step 2
    OutRng.Resize(1, 2).Value = Array(InputRng.Cells(i, 1).Value, InputRng.Cells(i + 1, 1).Value)
    Set OutRng = OutRng.Offset(1, 0)
Next
End Sub

3. 点击 运行 按钮或键盘上的 F5 键,会弹出一个对话框让您选择要移动的区域。见截图:
extract every other cell in a column with formula

4. 然后点击 确定 显示另一个对话框以选择一个单元格输出结果。见截图:
extract every other cell in a column with formula

5. 点击 确定,您可以看到如下所示的结果:
extract every other cell in a column with formula


🎯 结论:

在 Excel 中将每隔一行移动到列的每种方法都有其自身的优势,具体取决于您的需求:

  • 公式方法:适用于小型数据集的快速一次性任务。不需要额外工具,但在大数据范围内可能会变慢。
  • Kutools for Excel:适合偏好基于点击的简单解决方案而无需复杂公式或编码的用户。Kutools 提供了用户友好的界面以实现快速转换。
  • VBA 宏:自动化和重复任务的最佳选择,特别是对于大型数据集。需要基本的编码知识,但提供了最大的灵活性。

选择适合您需求的方法,无论您是在处理小型数据集还是需要针对大型数据集的更可扩展的解决方案。如果您有兴趣探索更多 Excel 技巧,我们的网站提供了数千个教程,帮助您掌握 Excel


相关文章:

最佳 Office 办公效率工具

🤖 Kutools AI 助手:基于智能执行,彻底革新数据分析 生成代码创建自定义公式分析数据并生成图表调用 Kutools Functions
热门功能:查找、选中项的背景色或标记重复项|删除空行|合并列或单元格且不丢失数据|四舍五入(无公式)...
高级 LOOKUP多条件查找 (VLookup)多值查找 (VLookup)多表查找 (VLookup Across Multiple Sheets)模糊查找 (Fuzzy Lookup)...
高级下拉列表快速创建下拉列表依赖型下拉列表多选下拉列表...
列管理器添加指定数量的列移动列切换隐藏列的可见状态比较区域及列...
特色功能网格聚焦设计视图增强编辑栏工作簿 & 工作表管理器资源库(自动文本)|日期提取合并数据加密/解密单元格按列表发送电子邮件超级筛选特殊筛选(筛选粗体/倾斜/删除线等)...
热门15 大工具集12 款文本工具添加文本删除特定字符等)50+ 种图表 类型甘特图等)40+ 实用公式基于生日计算年龄等)19 款插入工具插入二维码按路径插入图片等)12 种转换工具小写金额转大写汇率转换等)7 款合并与分割工具高级合并行分割单元格等)...更多精彩等你发现
使用 Kutools,支持您的首选语言——包括英语、西班牙语、德语、法语、中文及40 多种其他语言!

用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...


Office Tab 为 Office 带来标签式界面,让你的工作更加轻松

  • 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
  • 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
  • 办公效率提升50%,每天帮你减少上百次鼠标点击!