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 quickly merge adjacent rows with same data in Excel?

doc merge same cells 1

Supposing you have a worksheet with same data in the adjacent rows, and now you want to merge the same cells into one cell, so that the data looks neat and beautiful. (See left screenshot.) How do you merge adjacent rows with same data quickly and conveniently? Today, I will introduce you some quick way to solve this problem.

Merge adjacent rows of same data with VBA code

Merge adjacent rows of same data with Kutools for Excel


Merge adjacent rows of same data into one cell:

To merge multiple rows of same data into one cell, the Kutools for Excel's Merge Same Cells feature can help you to solve this job as quickly as you can.

doc merge same cells 6

Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download and free trial Now!


Merge adjacent rows of same data with VBA code


Of course you can merge the same data with Merge & Center command, but if there are hundreds of cells need to be merged, this method will be time-consuming. So the following VBA code can help you merge the same data easily.

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

2. Click Insert > Module, and paste the following macro in the Modulewindow.

Sub MergeSameCell()
'Updateby20131127
Dim Rng As Range, xCell As Range
Dim xRows As Integer
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xRows = WorkRng.Rows.Count
For Each Rng In WorkRng.Columns
    For i = 1 To xRows - 1
        For j = i + 1 To xRows
            If Rng.Cells(i, 1).Value <> Rng.Cells(j, 1).Value Then
                Exit For
            End If
        Next
        WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge
        i = j - 1
    Next
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

3. Then press the F5 key to run this code, a dialog is displayed on the screen for selecting a range to work with. See screenshot:

doc merge same cells 2

4. Then click OK, the same data in column A will be merged together. See screenshot:

doc merge same cells 1


Merge adjacent rows of same data with Kutools for Excel

With the Merge same cells utility of Kutools for Excel, you can quickly merge the same values in multiple columns with one click.

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, you can do as follows:

1. Select the columns that you want to merge the adjacent rows with same data.

2. Click Kutools > Range > Merge Same Cells, see screenshot:

doc merge same cells 3

3. And then the same data in the selected columns have been merged in one cell. See screenshot:

doc merge same cells 4

Note: If you want to unmerge theses merged cells at once, the Unmerge Cell feature can do you a favor as following screenshot shown:

doc merge same cells 5

Click to Download Kutools for Excel and free trial Now!

To know more about this, please visit this Merge Same Cells feature.


Demo:Merge same cells into one cell or unmerge to fill duplicate values:

Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download and free trial Now!


Related article:

Unmerge cells and fill with duplicate values in Excel



Recommended Productivity Tools for Excel

Kutools for Excel Helps You Always Finish Work Ahead of Time, and Stand Out From Crowd

  • More than 300 powerful advanced features, designed for 1500 work scenarios, increasing productivity by 70%, give you more time to take care of family and enjoy life.
  • 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.

Brings Tabbed Browsing and Editing to Microsoft Office, Far More Powerful Than The Browser's Tabs

  • Office Tab is designed for Word, Excel, PowerPoint and Other Office Applications: 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.
    Clinton · 2 months ago
    Thanks a lot for the help. I have a followup question on this. Suppose i have the following situation:

    Apple 2
    Apple 2
    Orange 2
    Orange 2
    Banana 1
    Pear 1
    Kiwi 1

    Running the macro will cause all the '1's and the '2's to be grouped together and my total count will be 3 instead of 7. Is there a way I can merge the cells in the second column based on those in the first? Thanks in advance (:
  • To post as a guest, your comment is unpublished.
    Kimberly S · 6 months ago
    This is amazing. Thank you so much for the code. Is there any addition that would make it so the segments do not merge over a page break when printing?
    • To post as a guest, your comment is unpublished.
      skyyang · 6 months ago
      Hello, Kimberly,
      I can't get your detailed problem, but, the below VBA code can help you to merge the same cells before and after the page break separately, please try.
      If it helps you, please let me know.

      Sub MergeSameCell_PageBreak()
      Dim Rng As Range, xCell As Range
      Dim xRows As Integer
      Dim xHPB As HPageBreaks
      Dim xChpb As Long
      Dim xBol As Boolean
      Dim xRg As Range
      Set xHPB = ActiveSheet.HPageBreaks
      xChpb = xHPB.Count
      xTitleId = "KutoolsforExcel"
      Set WorkRng = Application.Selection
      Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
      Application.ScreenUpdating = False
      Application.DisplayAlerts = False
      xRows = WorkRng.Rows.Count
      For Each Rng In WorkRng.Columns
      For I = 1 To xRows - 1
      For J = I + 1 To xRows
      xBol = False
      Set xRg = Rng.Cells(J, 1)
      For xC = 1 To xChpb
      If xRg.Row = xHPB.Item(xC).Location.Row Then
      xBol = True
      Exit For
      End If
      Next
      If xBol Then Exit For
      If Rng.Cells(I, 1).Value <> Rng.Cells(J, 1).Value Then
      Exit For
      End If
      Next
      WorkRng.Parent.Range(Rng.Cells(I, 1), Rng.Cells(J - 1, 1)).Merge
      I = J - 1
      Next
      Next
      Application.DisplayAlerts = True
      Application.ScreenUpdating = True
      End Sub
  • To post as a guest, your comment is unpublished.
    Kaushik Vankayala · 9 months ago
    In the above VBA code line number 19 "i=j-1 "
    how is it going to affect our logic anyway? I did remove that and could still able to get the same result!
    Any specific purpose why it is present?
  • To post as a guest, your comment is unpublished.
    Anom Harya · 1 years ago
    Oh mate, you save lot of my days. Thank you!!!!
  • To post as a guest, your comment is unpublished.
    Priya Mohan · 1 years ago
    Very helpful !! Thanks a lot