The tutorial shows how to safely merge rows in Excel in 4 different ways: merge multiple rows without losing data, combine duplicate rows, repeatedly merge blocks of rows, and copy matching rows from another table based on one or more common columns.
Merging rows in Excel is one of the most common tasks that all of us need to perform every now and then. The problem is that Microsoft Excel does not provide a reliable tool to do this. For example, if you try to combine two or more rows using the built-in Merge & Center button, you will end up with the following error message:
"The selection contains multiple data values. Merging into one cell will keep the upper-left most data only."
Clicking OK will merge the cells but only keep the value of the first cell, all other data will be gone. So, obviously we need a better solution. This article describes several methods that will let you merge multiple rows in Excel without losing any data.
How to merge rows in Excel without losing data
The task: you have a database where each row contains certain details such as product name, product key, customer name and so on. What we want is to combine all the rows related to a particular order like shown below:
There are two ways to achieve the desired result:
Merge multiple rows using formulas
To joint the values from several cells into one, you can use either the CONCATENATE function or concatenation operator (&). In Excel 2016 and higher, you can also use the CONCAT function. Any way, you supply cells as references and type the desired delimiters in-between.
Merge rows and separate the values with comma and space:
=CONCATENATE(A1,", ",A2,", ",A3)
=A1&", "&A2&", "&A3
Merge rows with spaces between the data:
=CONCATENATE(A1," ",A2," ",A3)
=A1&" "&A2&" "&A3
Combine rows and separate the values with commas without spaces:
=CONCATENATE(A1,A2,A3)
=A1&","&A2&","&A3
In practice, you may often need to concatenate more cells, so your real-life formula is likely to be a bit longer:
=CONCATENATE(A1,", ",A2,", ",A3,", ",A4,", ",A5,", ",A6,", ",A7,", ",A8)
Now you have several rows of data merged into one row. But your combined rows are formulas. To convert them to values, use the Paste Special feature as described in How to replace formulas with their values in Excel.
Combine rows in Excel with Merge Cells add-in
The Merge Cells add-in is a multi-purpose tool for joining cells in Excel that can merge individual cells as well as entire rows or columns. And most importantly, this tool keeps all the data even if the selection contains multiple values.
To merge two or more rows into one, here's what you need to do:
- Select the range of cells where you want to merge rows.
- Go to the Ablebits Data tab > Merge group, click the Merge Cells arrow, and then click Merge Rows into One.
- This will open the Merge Cells dialog box with the preselected settings that work fine in most cases. In this example, we only change the separator from the default space to line break, as shown in the screenshot below:
- Click the Merge button and observe the perfectly merged rows of data separated with line breaks:
How to combine duplicate rows into one (keeping unique values only)
The task: you have some Excel database with a few thousand entries. The values in one column are essentially the same while data in other columns are different. Your goal is to combine data from duplicate rows based on a certain column, making a comma separated list. Additionally, you may want to merge unique values only, omitting duplicates and skipping empty cells.
The screenshot below shows what we are trying to achieve.
The prospect of finding and merging duplicate rows manually is definitely something you'd want to avoid. Meet the Merge Duplicates add-in that turns this time-consuming and cumbersome chore into a quick 4-steps process.
- Select the duplicate rows you want to merge and run the Merge Duplicates wizard by clicking its button on the ribbon.
- Make sure your table is selected correctly and click Next. It is wise to keep the Create a backup copy option checked, especially if you are using the add-in for the first time.
- Select the key column to check for duplicates. In this example, we select the Customer column because we want to combine rows based on customer name.
If you want to skip empty cells, be sure to select this option and click Next.
- Choose the columns to merge. In this step, you select the columns whose data you want to combine data and specify the delimiter: semicolon, comma, space, line break, etc.
Two additional options in the upper part of the window let you:
- Delete duplicate values while combining the rows
- Skip empty cells
When done, click the Finish button.
In a moment, all the data from duplicate rows are merged into one row:
How to repeatedly merge blocks of rows into one row
The task: you have an Excel file with information about the recent orders and each order takes 3 lines: product name, customer name and date of purchase. You would like to merge every three rows into one, i.e. repeatedly merge the blocks of three rows.
The following image show what we are looking for:
If there are only few entries to be combined, you can select each 3 rows and merge each block individually using the Merge Cells add-in. But if your worksheet contains hundreds or thousands of records, you will need a faster way:
- Add a helper column to your worksheet, column C in our example. Let's name it BlockID, or whatever name you like.
- Insert the following formula in C2 and then copy it down the column by dragging the fill handle:
=INT((ROW(C2)-2)/3)
Where:
- C2 is the topmost cell in which you enter the formula
- 2 is the row where the data starts
- 3 is the number of rows to be combined in each block
This formula adds a unique number to each block of rows, as shown in the screenshot:
How this formula works: The ROW function extracts the row number of the formula cell, from which you subtract the number of the row where your data start, so that the formula starts counting from zero. For example, our data start in the 2nd row, so we subtract 2. If your data start, say, in row 5, then you will have ROW(C5)-5. After that, you divide the above equation by the number of rows to be merged and use the INT function to round the result down to the nearest integer. - Well, you've done the main part of the work. Now you just need to merge the rows based on the BlockID For this, we will be using the already familiar Merge Duplicates wizard that we utilized for combining duplicate rows:
- In step 2, choose BlockID as the key column.
- In step 3, select all the columns you want to merge and pick line break as the delimiter.
In a moment, you will have the desired result:
- Delete the Block ID column since you don't need it any longer and you are done! A funny thing is that we've needed 4 steps again, like in the two previous examples :)
How to merge matching rows from 2 Excel tables without copying / pasting
Task: you have two tables with a common column(s) and you need to merge matching rows from those two tables. The tables may be located in the same sheet, in two different spreadsheets or in two different workbooks.
For example, we have sales reports for January and February in two different worksheets and want to combine them into one. Mind you, each table may have a different number of rows and different order of products, therefore simple copy/pasting won't work.
In this case, the Merge Two Tables add-in will work a treat:
- Select any cell in your main table and click the Merge Two Tables button on the Ablebits Data tab, in the Merge group:
This will run the add-in with your main table preselected, so in the first step of the wizard you simply click Next. - Select the second table, i.e. the lookup table containing the matching rows.
- Choose one or more column columns that exist in both tables. The key columns should contain only unique values, like Product ID in our example.
- Optionally, select the columns to update in the main table. In our case, there are no such columns, so we just click Next.
- Choose the columns to add to the main table, Feb sales in our case.
- In the final step, you can select additional options depending on how exactly you want to merge data, and click the Finish button. The screenshot below shows the default settings, that work just fine for us:
Allow the add-in a few seconds for processing and review the result:
How can I get these merging tools for Excel?
All of the add-ins discussed in this tutorial, plus 70+ other time-saving tools, are included in our Ultimate Suite for Excel. The add-ins work with all versions of Excel 2019, Excel 2016, Excel 2013, Excel 2010 and Excel 2007.
Hopefully, you can now merge rows in your Excel sheets exactly the way you want them. If you have not found a solution for your specific task, just leave a comment and we will try to figure out a way together. Thank you for reading!
Available downloads
Ultimate Suite 14-day fully-functional version (.exe file)
118 comments
Hai Irina,
can u please help me?
I have alpbhabets in column A and Assigned values on column B.If I merged some albhabetic letters in C.I need to display the corresponding mergerd values in column D.Is this Poosible?If Yes How?
A B C D
a 1 ac 13 ..................?
b 2
c 3
Thank you
Is there a function in Excel which allows a user simply combine two sheets finding the unique data identifier in both sheets and automatically add the necessary number of additional columns so that all of the data in both sheets would be displayed on the line where the unique identifier is found on each sheet? Seems like there would be a function in Excel to do this easily and automatically without entering any formula.
Irina,
I have two rows, 3 columns with Col A Name, Col B expiration date and Col C email address.
Row 1has the name and email address
Row 2 has the name and expiration date
I need to merge, combine, sort; to obtain the name, expiration date and email address into one row of data
Example:
row 1 Fred fred@fred
row 2 Fred 12/1/2017
Need row Fred 12/1/2017 fred@fred
Hi Charles,
You can use our Combine Rows Wizard add-in to solve this task:
https://www.ablebits.com/excel-combine-rows/index.php
hello dear madam
i have a question
i have a column in excel with many name
and i want to know that how can i marge the same name in column
thanks
Hello Amir,
If your task is to leave only unique names, you can use the Remove Duplicates tool on the Data tab in Excel. If you'd like to merge data from adjacent columns at the same time, then Combine Rows Wizard will help you:
https://www.ablebits.com/excel-combine-rows/index.php
I have a list of contacts to merge. Some rows are for the same person, and have different data than the other rows. One may have an email address, the other the phone number. Sometimes both rows have the same data.
The prior comments are all interesting, but did not have this answer.
Is there a way to merge the rows and retain the best data? I would think I need a VBA macro which allows a dialog box for me to choose the better of the two data points if there is competing data for a column.
This may not be a strictly Excel solution, but do you have any advice for this very common scenario?
Thank you
Hello Curt,
Combine Rows Wizard does exactly what you describe:
https://www.ablebits.com/excel-combine-rows/index.php
You can specify the key columns to know the rows refer to the same record, like the name, and select all other columns for the merge with the option to delete duplicate values; thus you'll get all relevant information on the same row.
If this add-in actually does what it says, I'll most probably purchase it, but I tried the trial version to combine rows and delete duplicates in them but it did not work. I went exactly according to the tutorial above but still it didn't work. After pressing finish, a message comes which says 0 Rows combined, no duplicates found, I don't know what is the problem. Can someone help me with it?
Hello Vikram,
I'm sorry to hear that. Would it be possible for you to describe your task and send a sample spreadsheet to support@ablebits.com? Please also include a link to the post and your comment number. We'll look into this issue.
how can I have Ablebits in my Excel?
Hello Fitz,
You can get both add-ins with Ultimate Suite for Excel, here is a direct link to download a fully-functional 20-day evaluation version:
https://www.ablebits.com/files/get.php?addin=xl-suite
We need to combine the data in excel as follows:
Original Data Expected Data
Name value Name value Combine value for particular Row value
aaaaa 1701 aaaaa 1701 1701,1668,1332,1474
aaaaa 1668 aaaaa 1668 1701,1668,1332,1474
aaaaa 1332 aaaaa 1332 1701,1668,1332,1474
aaaaa 1474 aaaaa 1474 1701,1668,1332,1474
bbbb 1224 bbbb 1224 1224,1758,1512,1812,1382,1234
bbbb 1758 bbbb 1758 1224,1758,1512,1812,1382,1234
bbbb 1512 bbbb 1512 1224,1758,1512,1812,1382,1234
bbbb 1812 bbbb 1812 1224,1758,1512,1812,1382,1234
bbbb 1382 bbbb 1382 1224,1758,1512,1812,1382,1234
bbbb 1234 bbbb 1234 1224,1758,1512,1812,1382,1234
dddd 1641 dddd 1641 1641,1537,1589,1216,1703,1277,1197,1894,1847
dddd 1537 dddd 1537 1641,1537,1589,1216,1703,1277,1197,1894,1847
dddd 1589 dddd 1589 1641,1537,1589,1216,1703,1277,1197,1894,1847
dddd 1216 dddd 1216 1641,1537,1589,1216,1703,1277,1197,1894,1847
dddd 1703 dddd 1703 1641,1537,1589,1216,1703,1277,1197,1894,1847
dddd 1277 dddd 1277 1641,1537,1589,1216,1703,1277,1197,1894,1847
dddd 1197 dddd 1197 1641,1537,1589,1216,1703,1277,1197,1894,1847
dddd 1894 dddd 1894 1641,1537,1589,1216,1703,1277,1197,1894,1847
dddd 1847 dddd 1847 1641,1537,1589,1216,1703,1277,1197,1894,1847
Hi I am interesting in doing exactly the example given in "Merge matching rows from 2 Excel worksheets without copying / pasting" (https://www.ablebits.com/office-addins-blog/merge-rows-excel/#merge-matching-rows). to be brief: Product, Jan sales on 1 sheet and Product, Feb sales on another sheet.
I download the "merge two tables" function but I do not ended up with Product, Jan sales, Feb sales as described. Step4 is actually different. So I am wondering if you guys have updated this function and more important How to do the example because it is exactly what I am looking for?
Thanks a lot for any help
Hello Emmanuelle,
Thank you for contacting us.
You are right, we slightly changed the add-in, though it has the same functionality. The new version lets you choose the columns to update on step 4, and the columns to add on step 5. If you don't want to update any columns and your task is to add "Feb sales" to your main table, do not select anything on step 4 and click Next:
Once you get to step 5, select Feb Sales:
Choose the necessary additional options on the last step and click Finish to get the desired result.
Hi :)
I've read the part "Repeatedly merge blocks of rows into one row"
How can you make it work if you don't have the first row in your example?
So if you don't have this first row:
| Order no. | Order details | BlockID |
Thanks
Adam
!!!!! And I have only one column which I'd like to be merged this way: Merging 1-18, Merging 19-36, Merging 37-54. (and do not delete the text: "blablabla".
So I'd like to merge every 18 rows. (and do not delete the text: "blablabla".
From this:
_________________
1.___blablabla___
2._______________
3._______________
4._______________
5._______________
6._______________
7._______________
8._______________
9._______________
10.______________
11.______________
12.______________
13.______________
14.______________
15.______________
16.______________
17.______________
18.______________
19.__blablabla___
20.______________
21.______________
22.______________
23.______________
24.______________
25.______________
26.______________
27.______________
28.______________
29.______________
30.______________
31.______________
32.______________
33.______________
34.______________
35.______________
36.______________
37.__blablabla___
38.______________
39.______________
40.______________
41.______________
42.______________
43.______________
44.______________
45.______________
46.______________
47.______________
48.______________
49.______________
50.______________
51.______________
52.______________
53.______________
54.______________
It should be like this:
_________________
1. |
2. |
3. |
4. |
5. |
6. |
7. |
8. |
9. blablabla |
10. |
11. |
12. |
13. |
14. |
15. |
16. |
17. |
18.______________|
19. |
20. |
21. |
22. |
23. |
24. |
25. |
26. |
27. |
28. blablabla |
29. |
30. |
31. |
32. |
33. |
34. |
35. |
36.______________|
37. |
38. |
39. |
40. |
41. |
42. |
43. |
44. |
45. |
46. blablabla |
47. |
48. |
49. |
50. |
51. |
52. |
53. |
54.______________|
55. |
56. |
57. |
and so on...
Hello Adam,
Thank you for sending the example to us.
Since formulas work with values, you can merge every n cells only with the help of VBA. One of our developers wrote the code for you, please follow these steps:
- Open your Excel file and select the column with the values you'd like to merge (column A in your sample file);
- Press Alt+F11 on your keyboard;
- Double-click the sheet name in the list and paste this code:
Sub merge()
Dim reg As Range
Dim start As Range
Dim startVal As String
Dim size As Integer
Set reg = Application.Selection
size = reg.Cells.Count
startVal = reg.Cells(size, 1).Value
Set start = reg.Cells(size, 1)
For i = size To 1 Step -1
If startVal <> reg.Cells(i, 1).Value Then
Application.ActiveSheet.Cells.Range(reg.Cells(i, 1), start).merge
If i <> 1 Then
Set start = reg.Cells(i - 1, 1)
startVal = reg.Cells(i - 1, 1).Value
End If
End If
Next
End Sub
- Click Run.
This should do the trick.
Hi,
I want to merge 3 cells into 2. Please tell me if it is possible.
Thank You
Hello Rishabh,
Could you please provide an example of the data you have in three cells and of what you want to get in two cells as a result? You can send a sample spreadsheet to support@ablebits.com.
nice
Pls suggest how do I concatenate for 5000 cells ?
Hello,
Could you please describe the way you want to concatenate 5000 cells? If possible, please send a sample spreadsheet to support@ablebits.com
I have 3 rows as AB0U-RFW-010-9012-01 AB0U-RFW-010-9012-02, AB0U-RFW-010-9012-03, AB0U-RFW-010-9012-04
i want only one entry to show AB0U-RFW-010-9012-01~04 can you help how to getthis
how i can change the data 03 or 4 row to one
Hi plz help me for moving data to other file without loss
Bonjour! I hope you will be able to help me! I have an Excel sheet containing column A, listing natural medicinal substances. Then columns B to AA have headers indicating the possible medicinal uses of said substances. There are 26 uses and I put "X"s in the column(s) that correspond to each substance's uses.
To make a long story short, at first I had one excel spreadsheet for each use of my substances, and I now want to combine all the data in one larger spreadsheet. BUT, since each substance has multiple uses, I end up with, for example, 4 rows for "Tansy" (Ex. A 21, 22, 23, 24), and in each row, an X appears in the column corresponding to one use of the herb (Ex:B:21, C:22, J:23 and Y:24). What I would like to do is to combine the 4 Tansy rows into one (ex. row 21), where I would have B:32, C:21, J:21 and Y:21.
I hope I managed to be clear, and I thank you very much in advance for any help you could provide in letting me know is your Wizards could solve my problem! IM
Hello Isabelle,
It sounds like you can use Combine Rows Wizard for your task:
- Select all your data on step 1 and choose to create a backup copy just in case;
- Select column A with the substances on step 2;
- Use the top check-box to select all columns with the uses on step 3, and select the options to "Delete duplicate values" and "Skip empty cells". As you have the same "X"s in all cells, it doesn't matter what delimiter you leave in the field.
- Click Finish
If you have any difficulties, please send a sample worksheet to support@ablebits.com, we'll do our best to assist you.
Can anyone help me out on how to repeatedly merge blocks of uneven rows into one row.
I have very large data with uneven blocks of row.
I have something like the table below
Name Reported Date+"" Summary*"" Notes""
Istifanus 5/4/2015 8:08 2-IT Incident Report - Hardware - Dear Team,
abcd
efgh
kjil
Jane 5/4/2015 8:17 2-IT Incident Report - Hardware - Good morning,
port
Newman
Anderson
Caleb 5/4/2015 8:27 2-IT Incident Report - Hardware - Stevedores
I want to merge the Notes into one cell against the other contents of the first row.
Thank you for your help
Dear All, Am trying to merge multiple rows in a particular column without affecting the contents of other columns.
I'll appreciate if anyone have an idea on how to go about this
Firstly, great article and very well explained!
Secondly, I receive client databases in excel files. However, while we want to receive the data like this:
Column 1 Column 2 Column 3 Column 4
John Smith 10 Smith St John@gmail.com
Instead we get the data like this:
Column 1 Column 2 Column 3 Column 4
John Smith 10 Smith St John@gmail.com Nothing Nothing Nothing
or this:
Column 1 Column 2 Column 3 Column 4
John,Smith,10 Smith St,John@gmail.com Nothing Nothing Nothing
Is there a way to write up a script or some way to reformat the data to get the format we want - which is the first example?