How to merge rows in Excel without losing data

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."
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:
Multiple rows to be merged into one.

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)

CONCATINATE formula to combine values from multiple rows into a single cell.

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:

  1. Select the range of cells where you want to merge rows.
  2. Go to the Ablebits Data tab > Merge group, click the Merge Cells arrow, and then click Merge Rows into One.
    Merge multiple rows into one.
  3. 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:
    Specify how you want to merge rows and choose the delimiter.
  4. Click the Merge button and observe the perfectly merged rows of data separated with line breaks:
    Merged rows 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.
Combine data from duplicate rows into one row.

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.

  1. Select the duplicate rows you want to merge and run the Merge Duplicates wizard by clicking its button on the ribbon.
    Run the Merge Duplicates tool.
  2. 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.
    Run the Merge Duplicates wizard.
  3. 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.
    Select the key column by which you want to combine duplicate rows.

  4. 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.
    Select the columns whose data you want to combine.

In a moment, all the data from duplicate rows are merged into one row:
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:
Repeatedly merge blocks of three rows in Excel.

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:

  1. Add a helper column to your worksheet, column C in our example. Let's name it BlockID, or whatever name you like.
  2. 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:
    A unique number is added to each block of rows to be merged.
    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.

  3. 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.

    Merging blocks of rows in Excel.
    In a moment, you will have the desired result:
    Every 3 rows are merged into one.

  4. 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.
Merge matching rows from two tables.

In this case, the Merge Two Tables add-in will work a treat:

  1. Select any cell in your main table and click the Merge Two Tables button on the Ablebits Data tab, in the Merge group:
    Run the Merge Two Tables tool.
    This will run the add-in with your main table preselected, so in the first step of the wizard you simply click Next.
  2. Select the second table, i.e. the lookup table containing the matching rows.
    Select the second table containing the matching rows.
  3. 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.
    Choose one or more key columns.
  4. Optionally, select the columns to update in the main table. In our case, there are no such columns, so we just click Next.
  5. Choose the columns to add to the main table, Feb sales in our case.
    Choose the matching columns to add to the main table.
  6. 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:
    Select additional options to merge your tables.

Allow the add-in a few seconds for processing and review the result:
Matching rows from two tables are merged.

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

  1. I am trying to bring an output over to another cell for a schedule that I am creating my worksheet is broken down into 15 minute intervals and I am trying to get the lunch to cover an hour

    my current formula is as follows
    =IF($B9>G$1,"FREE",IF($F9<G$1,"FREE",IF($C9=G$1,"BREAK",IF($D9=G$1,"lunch",IF($E9=G$1,"BREAK","DL")))))

    I can only get the if summary to output lunch to that one 15 minute cell does anyone know how I can add it to multiple cells without changing my data table or how I can merge multiple cells with my formula

    • Hello Andrew,

      I am sorry, it is difficult to recommend you something without seeing your data. For us to be able to assist you better, please post a small sample workbook with your data on our forums. Our support team will try to help.

      • okay I will do that.. but basically what I would like to do is in my formula tell lunch to consume 4 cells instead of just one by copying over 4 times without creating an endless cycle or tell the the "lunch" to merge multiple cells when during that time slot

  2. I have an inventory report that shows the cost when we purchased items. It first lists the item number and description, and then on another line it shows the date, qty, cost. Some items have just one purchase date, ie one row, and others have up to 5 rows. The items with multiple rows have a subtotal, the ones with one row do not. I want to get the part number and description on the same line(s) as the purchase date information. How do I do that?

    More detail:
    cell A2 and B2 have the item# and description.
    Cell B3 C3, D3, E3 have the purchase date, item cost, and qty. and extended cost.
    But sometimes there will also be a Cell B4, C4, D4 and E4 with another purchase date, cost and qty. And then this would be followed with a subtotal of the qty and cost in row 5.
    I need to get the Item# and Description to show up on all the lines for that part.

    HELP!???

    • Hello Tommy,

      I am sorry, but there is no way to fulfill your task using formulas. If your data are more or less sorted, a special VBA macro should help. You can ask for it on http://www.mrexcel.com or http://www.excelforum.com

      If your data are distorted, you’d better hire freelancers who sort your data manually or write a macro.

  3. Hi
    How do you link an excel populated data sheet(A) to another data sheet(B) but manage to keep the information lock to dates when data is combined in data sheet(B).
    Thank You

  4. I have an online order system that gives me an excel sheet of individual items placed in an order. I want to merge the items and quantity based on each order. Is this possible with your program?

    Example:

    Order Item Quantity
    100 Plates 500
    100 Shoes 2
    101 Phones 1
    101 Paper 3

    I would like it to look like this (or similar):

    Order Item
    100 Plates - 100, Shoes - 2
    101 Phones - 1, Paper - 3

  5. I tried INT((ROW(C2)-2/3)) to combine multiple rows in my spreadsheet and I did get a value of 1 for C2, but I cannot find the block id or combine row wizard in Excel 2007.

    Thanks,
    Shana

  6. I have a very lengthy spreadsheet, and I need to sort everything into alphabetical order by name in column "A", but each cell in column "A" has specific data in columns "B" thru "G" linked to it. Is there a way I can sort alphabetically without mixing up all the other data. My only thought was to merge each row entirely, and then sort via alphabetical order than un-merge all rows. Is there an easier way?

    • Nevermind.

  7. Am not sure what I need is covered? I have two equal length adjacent columns, both containing text. I need to merge the text in column 1 with the text in column 2, into a single column (say 3) with no loss of data.
    For example,
    1 2 3
    A X A,X
    B Y BECOMES B,Y
    C Z C,Z
    . . .
    . . .

    • Hello Peter,

      Here's the formula:

      =IF(AND(ISNUMBER(A1),ISNUMBER(B1)),A1+B1,A1&","&B1)

      • Spot on!

        Thanks,

        P

  8. Hello Svetlana,
    Is there any formula to merge multiple empty cells in a column?

    Thank you

  9. Hi,
    I want to merge the rows. but in the content some of the rows are blanks. i tried the concatenate formula like this(=A1&","A2) . Its not working. Tell me how to merge the rows with comma if there are blank rows inbetween the content.

    • Hello Mike,

      Sorry, I do not exactly understand the task. If you can send a sample workbook with your data to support@ablebits.com and include the result you want to get, our support team will try to help.

  10. Hi,
    Is there a way to use the combine rows and have the program actually write out all the columns instead of entering data in a column separated by semicolons or commas? I want the duplicate data actually expanded across columns:
    Sample
    A B 32 25 Y N
    A C 32 22 N Y
    Combined
    A B C 32 32 35 22 Y N N Y

    I love the program, it is fantastic but I need to expand the results and not sure how to do that.

    Thanks,

    Gene

  11. Hi Svetlana,

    Hope you are doing good.
    Quick question.

    Lets say I have:

    firstname lastname email

    abc dec test@gmail.com
    123 456 123456@gmail.com

    When filling in the data, at times, the email is firstnamelastname@<email.com.
    I would like a way that when this is the case, I use a shortcut and firstnamelastname is automatically pasted in the 3rd column.
    Now this has to be a shortcut cause not always, this is the case.

    I hope you understood my query. Is this possible in any manner?

    Kind Regards,
    Hem

    • Hi Hem,

      If my understanding is correct, it is not possible to fulfill your task using formulas. Most likely you need a small VBA macro.

  12. Hi there, how to I undo the merged cells?

    • Hello Sumen,

      It depends on how the cells were merged. If you have just merged them, you can use the standard Excel Undo feature (Ctrl+Z). Our merging add-ins create a backup copy of your worksheet before merging the data. In other cases, I'm afraid, Undo is not possible.

  13. I am having the list as mentioned below and i want the result which is mentioned.
    please help by provinding the solution as mentioned in name coloum is change day by day i expecting the formula from where he automaticaly give me the result name of the customer which is present in name column.

    Name code amount
    Abc 123 2
    DEF 456 3
    GHF 458 4
    KLM 741 5
    NMR 351 6
    DEF 456 7
    KLM 741 8
    MNP 3425 9
    NMR 351 10
    MNP 3425 11
    JKL 7538 12
    Abc 123 13
    DEF 456 14
    GHF 458 15
    GHF 458 16
    DEF 456 17
    DEN 753 18

    I want the Result to be like mentioned below by using the formaulas

    Name Code Amount
    Abc 123 15
    GHF 458 35
    DEF 456 41
    KLM 741 13
    NMR 351 16
    MNP 3425 20
    JKL 7538 12
    DEN 753 18

    • I believe the following solutions will work:

      Solution 1:
      - Sort your table by the Name column.
      - Go to Data > Outline and click on Subtotal.
      - Specify the following settings:
      At each change in: Name
      Use function: Sum
      Add subtotal to: Amount
      - Click OK and then press Number 2 in the upper left-hand corner of your worksheet to get the sum by name.
      For more information about using subtotals in Microsoft Excel, please see:
      https://www.ablebits.com/office-addins-blog/subtotal-excel-insert-use-remove/

      Solution 2:
      - Insert a pivot table (select your table and go to Insert > Tables > PivotTable).
      - Choose to insert the PivotTable report onto a new worksheet and click OK.
      - In the PivotTable Fields pane, drag and drop the Names column to the Rows section and the Amount column to the Values section.
      You will get the same result.

      Solution 3:
      - Copy your table to another worksheet
      - Go to Data > Remove duplicates to delete duplicated names.
      - Type the following formula in the Amount column:
      =SUMIF('V3 - source'!A2:A18,A2,'V3 - source'!C2:C18)
      Where 'V3 - source'!A2:A18 is the reference to the Names column of your source data, 'V3 - source'!C2:C18 – the reference to the Amount column.

      You can download the workbook with all 3 solutions using the below link:
      https://cdn.ablebits.com/_img-blog/_comments/jhon%20-%20119.235.57.75%20-%20sumif.xlsx

  14. I am having a 5000 customer in Column "A" and In column "A' most of the customer is repeated Now i want the formulas from which i will check the names of the customer which is present in this column.

  15. Thank you so much for this!! I was pulling my hair out trying to merge address data into one cell so that it would be more usable in a Mail merge in Microsoft Office. You saved my day!!! Thank you, thank you, thank you!!!

  16. let's say I have 2 rows of the exact same data, except for ONE cell in each column.

    For an example, let's make the headers: a. Customer Name, b. Customer ID, c. Customer Address, and d. Amount Paid.

    Now rows 1 & 2 are the exact same customer, except in row 1 column d the dollar amount is $500, and in row 2 the dollar amount is $300.

    Is there a way to quickly consolidate into a single line, with the dollar amount in column d the sum of the previous entries? (i.e. $800)?

    • Hello Harold,

      You can do this in 2 ways:

      1. Using Subtotal. Sort your table by Customer ID and then apply subtotal in this way: At each change in "Customer ID", use function "Sum", add subtotal to column "Amount Paid". Please see this article for more details: Using Subtotals in Microsoft Excel

      2. Using a pivot table.

  17. Hi Swetlana
    I can not find the menu and i want to help you on urgent basses so kindly help me.

    Regards
    Mukesh Walia

    • Hello Mukesh,

      I am sorry, I do not exactly understand the problem. Do you mean you do not see the add-in's menu in Excel after installation? Anyway, you can reach our support team at support@ablebits.com and we will promptly respond and fix the issue.

  18. I tried out this merging tool for the past two days and I like it a lot, but I run into problems, as soon as I try to combine a sheet that just contains text and number data with a sheet that has a date column. Is there something that has to be considered when doing this? I tried every possible combination, but it just does not seem, that my merged values are ever correct...

    • Hello Bridget,

      Thank you for your interest in our merging add-in for Excel, I am really glad to know you like it!

      I'm afraid we cannot determine the exact cause of the problem without seeing your data. Can you please send me your workbook (or just a sample of data) at support@ablebits.com and describe the result you are trying to achieve? I will do my best to help.

  19. Can I use this tool if I need to use the contents 2 columns ?

    • Hi Gayle,

      Of course, you can use one of the tools described in the article, Merge Cells add-in, to combine the contents of 2 columns. You can find the detailed description with screenshots here.

  20. Hey Friend If u are still here so please tell me how to Merge or combine two column without losing data...like 1 have numbers in A1 and AW1,AX1 both had merged.i want copy A1 number to AW1,AX1...i Have a Very Big Spreadsheet..is it Possible or i ahve to do Manually...please Reply Fast..Thanks...

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)