Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in
x
or
x
x
Register
x

or

How to split a column every other row in Excel?

doc split every other row 1

For example, I have a long list of data, and now, I want to split the column into two lists equally by every other row as following screenshot shown. Are there any good ways to deal with this task in Excel?

Split a column every other row with Formulas

Split a column every other row with VBA code

Split a column every other row with Kutools for Excel


Split a single column into every other or nth row:

With Kutools for Excel's Transform Range utility, you can quickly convert a single row or column to a range of cells or vice versa.

doc split every other row 11


arrow blue right bubble Split a column every other row with Formulas


The following formulas may help you to quickly split a column into two columns by every other row, please do as follows:

1. Enter this formula into a blank cell, C2, for example, =INDEX($A$2:$A$13,ROWS(C$1:C1)*2-1), see screenshot:

doc split every other row 2

2. Then drag the fill handle down until the errors are displayed in the cells, see screenshot:

doc split every other row 3

3. Then enter another formula into cell D2, =INDEX($A$2:$A$13,ROWS(D$1:D1)*2), and drag the fill handle down to the cells until error values appears, and the column values have been split into two columns every other row, see screenshot:

doc split every other row 4


arrow blue right bubble Split a column every other row with VBA code

If you are interested in VBA code, here, I can talk about a code for you to solve this problem.

1. Hold down the ALT + F11 keys in Excel, and it opens the Microsoft Visual Basic for Applications window.

2. Click Insert > Module, and paste the following code in the Module Window.

VBA code:Split a column into two columns every other row

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. Then press F5 key to run this code, and a prompt box will pop out to remind you select the data range that you want to split, see screenshot:

doc split every other row 5

4. And click OK, another prompt box is popped put to let you select a cell to put the result, see screenshot:

doc split every other row 6

5. Then click OK, and the column has been split into two columns by every other row. See screenshot:

doc split every other row 7


arrow blue right bubble Split a column every other row with Kutools for Excel

If you want to learn more new things, I can recommend a powerful tool --Kutools for Excel, with its Transform Range utility, you can quickly convert a single row or column to a range of cells and vice versa.

Kutools for Excel : with more than 300 handy Excel add-ins, free to try with no limitation in 60 days

After installing Kutools for Excel, please do as follows:( Free Download Kutools for Excel Now )

1. Select the column data that you want to split into two columns by every other row.

2. Then click Kutools > Range > Transform Range, see screenshot:

doc split every other row 8

3. In the Transform Range dialog box, select Single column to range under the Transform type, then choose Fixed value and enter 2 into the box in the Rows per record section, see screenshot:

doc split every other row 9

4. Then click Ok button, and a prompt box will pop out to remind you select a cell where you want to output the result, see screenshot:

doc split every other row 10

5. Click OK, the list data has been split into two columns every other row.

Click to know more about this Transform Range utility.

Free Download Kutools for Excel Now



Excel Productivity Tools

Kutools for Excel - The Best Office Productivity Tool

  • Brings 300 powerful advanced features to Excel, enable you to do smarter, faster and better.
  • No longer need memorizing formulas and VBA codes, give your brain a rest from now on.
  • Become an Excel expert in 3 minutes, Complicated and repeated operations can be done in seconds, 
  • Reduce thousands of keyboard & mouse operations every day, say goodbye to occupational diseases now.
  • 110,000 highly effective people and 300+ world-renowned companies' choice.
  • 60-day full features free trial. 60-day money back guarantees. 2 years of free upgrade and support.

Office Tab - brings tabbed interface to Office, make your work much easier.

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
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 · 2 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 · 2 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.