提示:其它语言是由 Google 机器翻译的。 你可以访问 English 版本。
登录
x
or
x
x
马上登记
x

or

如何在Excel中每隔一行分隔一列?

doc分隔隔行1

例如,我有一个很长的数据列表,现在,我想将列分隔成两列,如下图所示。 在Excel中处理这个任务有什么好方法吗?

使用公式将每隔一行拆分一列

用VBA代码隔行隔列

使用Kutools for Excel将每隔一行分隔一列


将一个列分成每隔一行或第n行:

您订购的 Kutools for Excel's 变换范围 实用程序,您可以快速将单个行或列转换为一系列单元格,反之亦然。

doc分隔隔行11


箭头蓝色右泡 使用公式将每隔一行拆分一列


以下公式可以帮助您快速将列分成两列,请按照以下步骤操作:

1。 例如,将此公式输入到空白单元格C2中, =INDEX($A$2:$A$13,ROWS(C$1:C1)*2-1),看截图:

doc分隔隔行2

2。 然后向下拖动填充手柄,直到错误显示在单元格中,请参阅截图:

doc分隔隔行3

3。 然后将另一个公式输入到单元格D2中, =INDEX($A$2:$A$13,ROWS(D$1:D1)*2),然后将填充手柄向下拖动到单元格,直到出现错误值,并且列值每隔一行被分成两列,请参阅截图:

doc分隔隔行4


箭头蓝色右泡 用VBA代码隔行隔列

如果你对VBA代码感兴趣,在这里,我可以谈谈你的代码来解决这个问题。

1。 按住 ALT + F11 在Excel中的键,它打开 Microsoft Visual Basic for Applications 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到 模块 窗口。

VBA代码:每隔一行将列分成两列

Sub SplitEveryOther()
'Updateby20150813
Dim Rng As Range
Dim InputRng As Range, OutRng As Range
Dim index As Integer
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 OutRng = OutRng.Range("A1")
num1 = 1
num2 = 1
For index = 1 To InputRng.Rows.Count
    If index Mod 2 = 1 Then
        OutRng.Cells(num1, 1).Value = InputRng.Cells(index, 1)
        num1 = num1 + 1
    Else
        OutRng.Cells(num2, 2).Value = InputRng.Cells(index, 1)
        num2 = num2 + 1
    End If
Next
End Sub	

3。 然后按 F5 键运行此代码,并弹出提示框提醒您选择要分割的数据范围,请参阅截图:

doc分隔隔行5

4。 并点击 OK,弹出另一个提示框让你选择一个单元格放置结果,参见截图:

doc分隔隔行6

5。 然后点击 OK,并且该列已被每隔一行分成两列。 看截图:

doc分隔隔行7


箭头蓝色右泡 使用Kutools for Excel将每隔一行分隔一列

如果你想学习更多新东西,我可以推荐一个强大的工具 - Kutools for Excel,其 变换范围 实用程序,您可以快速将单个行或列转换为一系列单元格,反之亦然。

Kutools for Excel : 与超过300方便的Excel加载项,在60天免费试用没有限制.

安装后 Kutools for Excel,请按照以下步骤操作:( 免费下载Kutools for Excel )

1。 选择您想要按其他行分成两列的列数据。

2。 然后点击 Kutools > Range > 变换范围,看截图:

doc分隔隔行8

3。 在 变换范围 对话框中选择 单列到范围 在下面 变换类型,然后选择 固定值 并进入 2 进入箱子里 每条记录的行数 部分,看截图:

doc分隔隔行9

4。 然后点击 Ok 按钮,弹出提示框提醒您选择要输出结果的单元格,请参阅截图:

doc分隔隔行10

5。 点击 OK,列表数据每隔一行就被分成两列。

点击了解更多关于此Transform Range实用程序的信息。

免费下载Kutools for Excel


Kutools for Excel - 最佳办公生产力工具提高80%的生产力

  • 重用: 快速插入 复杂的公式,图表 以及你以前用过的任何东西; 加密单元格 密码; 创建邮件列表 并发送电子邮件...
  • 超级方程式酒吧 (轻松编辑多行文字和公式); 阅读布局 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不丢失数据; 分裂细胞含量; 组合重复的行/列...防止重复的细胞; 比较范围...
  • 选择复制或唯一 行; 选择空行 (所有细胞都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择......
  • 精确复制 多个单元格而不更改公式参考; 自动创建参考 多张表; 插入项目符号,复选框等等......
  • 提取文本,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级过滤器 (将过滤方案保存并应用到其他工作表); 高级排序 按月/周/日,频率等; 特殊过滤器 用粗体,斜体......
  • 结合工作簿和工作表; 根据键列合并表; 将数据拆分为多个表格; 批量转换xls,xlsx和PDF...
  • 超过300强大的功能。 支持Office / Excel 2007-2019和365。 支持所有语言。 在您的企业或组织中轻松部署。 全功能60天免费试用。
kte tab 201905

Office选项卡为Office提供选项卡式界面,使您的工作更轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,Publisher,Access,Visio和Project。
  • 在同一窗口的新选项卡中打开并创建多个文档,而不是在新窗口中。
  • 通过50%提高您的工作效率,每天为您减少数百次鼠标点击!
官方底部
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Jas · 4 months ago
    How to do the opposite of this? Get two column info in one row ?
    • To post as a guest, your comment is unpublished.
      skyyang · 3 months ago
      Hi, Jas,
      To do the opposite of this, to convert two columns data into one single column, you should apply the below VBA code:

      Sub ConvertRangeToColumn()
      Dim Range1 As Range, Range2 As Range, Rng As Range
      Dim rowIndex As Integer
      xTitleId = "KutoolsforExcel"
      Set Range1 = Application.Selection
      Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
      Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
      rowIndex = 0
      Application.ScreenUpdating = False
      For Each Rng In Range1.Rows
      Rng.Copy
      Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
      rowIndex = rowIndex + Rng.Columns.Count
      Next
      Application.CutCopyMode = False
      Application.ScreenUpdating = True
      End Sub

      Please try, hope it can help you!
  • To post as a guest, your comment is unpublished.
    Jeff · 2 years ago
    As a workaround, you can do the following:

    Using the above example,

    1. Type "=a2" in c2 and "=a3" in d3.

    2. Now select c2 through d3.

    3. Drag the fill handle parallel to all the data.

    4. Now delete cell a2 and shift cells up.

    5. Now we need to convert the formula results to the calculated values. That's easily done by copying all the data including the blank rows and pasting the values right on top of itself.

    6. Now you can simply sort any of the column alphabetically to bring all the data up.