*"Concatenate" usually means to link something together in a series or a chain. This operation is used in Google spreadsheets whenever you need to join records from multiple cells. This article collects the most popular and easy solutions to help you solve the concatenation puzzle.*

However big your dataset is, you may come across the task of combining records from multiple cells together. And I have no doubt you will want to not only keep all values from losing, but also add some commas, spaces, or other characters, or even separate those records with other text.

Google Sheets offers several tools for this task.

The CONCAT function is a simplified version of CONCATENATE:

=CONCAT(value1, value2)

To join cells, it requires:

*value1*– a record to which value2 should be appended.*value2*– the value to join.

To get one string from 2 text or numeric units, the formula will look like below, with each record in double-quotes:

`=CONCAT("2019:","The Lion King")`

In reality, your data is most likely already in cells. You can refer those cells directly instead of putting down each number or text as an argument. So the real-data formula will be like this:

`=CONCAT(A2,B2)`

As you can see, the function is super simple, but it has major **weak points**:

- it joins only 2 values at a time.
- it cannot combine data ranges, only single cells. If you try to merge multiple cells, you'll either get an error or only first two values will be joined, like this:
`=CONCAT(A2:A11,B2:B11)`

Google Sheets contains different operators for various purposes. Concatenation is not an exception. Using an ampersand character (&) in formulas instead of the CONCAT function will provide you with the same result:

`=A2&B2`

But little do you know that this сoncatenation operator is more flexible than CONCAT. Here's what it can do:

- Merge more than two values at a time:
`=A2&B2&C2`

- Not only merge several cells in Google Sheets, but also separate them with various characters:
`=A2&" "&B2&"; "&C2`

If you still don't get the desired result with these options, there's one more function you should try.

I believe Google Sheets CONCATENATE function is the first one to use when it comes to appending several records together.

The formula pattern consists of the following:

=CONCATENATE(string1, [string2, ...])

*string1*is the first string you want to append other values to. This argument is required.*string2, …*stands for all other strings you may want to append to the initial string. This argument is optional.

If I adapt the formula to my data, I will get this:

`=CONCATENATE(A2,B2,C2)`

Or, since the function accepts ranges:

`=CONCATENATE(A2:D2)`

You can immediately notice the first advantage of Google Sheets CONCATENATE: it can easily join over two cells with both text and numbers.

Combining cells in Google Sheets is half the work. But to make the result look pretty and readable, you should add some extra characters.

If you put the formula as is, it will concatenate text and glue everything together: *BonnieJacksonCA*, *BonnieJacksonIN*, etc. The good news is that Google Sheets CONCATENATE takes characters as arguments, too.

Thus, to divide combined strings with separators, simply mention them in the formula in double-quotes:

`=CONCATENATE(A2," ",B2,", ",C2)`

Here I want to separate A2 from B2 with space and B2 from C2 with a comma and space:

You are free to use almost any character in the function like this, but a line break requires a different approach.

`=TEXTJOIN(" ",TRUE,A2:C2)`

Here's how it works:

- Indicate a desired delimiter as a first argument –
*space*(" ") for me. - Put
*TRUE*as a second argument to skip blank cells or*FALSE*to include them to the result. - Enter the range to merge.

While it's obvious how to enter most delimiters to the function, you cannot type a line break the same way there. But luckily Google lets you play many different cards.

There's a function that helps to get special characters – it's called CHAR. And you probably know that all characters have a place in the Unicode table. So simply feed the ordinal number of the character from that table to the function and the latter will return the character itself.

Here's a formula to get the line break:

`=CHAR(10)`

Add it to the concatenation formula to have records separated by line breaks:

`=CONCATENATE(A2,CHAR(10),B2,CHAR(10),C2,CHAR(10),D2)`

If you try to combine date and time using one of the methods above, they won't work. Your spreadsheet will return records as simple numbers:

To merge these cells correctly in Google Sheets, you need to use the TEXT function:

=TEXT(number, format)

- where
*number*is any number, date, or time you'd like to get in the desired format - and
*format*is the pattern you'd like to apply.

- I use the first TEXT formula in order to change the date format from
*7/9/2019*to*9 Jul 2019*:`=TEXT(B2,"D MMM YYYY")`

- The second TEXT returns the time:
`=TEXT(C2,"HH:MM:SS")`

- Using these in CONCATENATE, Google Sheets lets me combine date and time in the desired format with other characters or text:
`=CONCATENATE(TEXT(B2,"D MMM YYYY"),", ",TEXT(C2,"HH:MM:SS"))`

With slight adjustments, all the ways I mentioned are capable of merging columns in Google Sheets.

To merge whole columns in Google Sheets with CONCAT, select the entire range that should contain the result (C2:C11 in my case) and wrap the function in ARRAYFORMULA:

`=ARRAYFORMULA(CONCAT(A2:A11,B2:B11))`

Create array formulas to combine entire columns with the ampersand and add separators at the same time:

`=ARRAYFORMULA(A2:A11&" "&B2:B11&"; "&C2:C11)`

If you have too many columns, enumerating them all can become a pain in the neck, especially if you accidentally skip/duplicate/mix up any characters.

Also, if you decide to add more columns to the formula later, you'll have to edit each and every existing range in the formula manually.

The next example solves these problems.

Google Sheets QUERY function is also suited to merge several columns in Google Sheets. Have a look:

`=TRANSPOSE(QUERY(TRANSPOSE(A2:D10),,9^9))`

You may think this strange formula is beyond your grasp, but let me lay its all pieces out for you:

- =TRANSPOSE(A2:D10) turns the rows of data into columns.
- =QUERY(TRANSPOSE(A2:D10),,9^9) merges records in each column to the top cells.
**Tip.**When I put*9^9*into the formula, I make sure all rows from all columns will be pulled into the first row as if they were headers. It is*9^9*since it includes all possible cells in the spreadsheet (remember the limit for 5M cells?) and is easy to remember. :) - =TRANSPOSE(QUERY(TRANSPOSE(A2:D10),,9^9)) takes that header row from QUERY and turns it into a column like the one I've got.

The perks of the Google Sheets QUERY for combining columns lay in these facts:

- you don't need to select the entire column as you do for array formulas
- you don't need to mention each column in the formula unless they are non-adjacent. In this case, here's how the formula will look:
`=TRANSPOSE(QUERY(TRANSPOSE({A2:A10,C2:C10,E2:E10,G2:G10}),,9^9))`

You already know that you can add missing text, numbers, and characters to your strings using the CONCATENATE function.

But if there are too many records to join, any extra characters can extend your formula way beyond what you have planned. In cases like this, it's better to merge cells as they are or using simple delimiters like space – and add the text after that. A special tool of ours will help you.

Add text by position inserts any chars and strings to cells based on the place you specify, no formulas needed. Let me show you how it works.

In the previous example QUERY combined names and phone numbers for me. But I'd like to add country abbreviations: *(USA/CA)* before phone numbers that start with *+1* and *UK* before *+44*:

Where there's concatenation, there's split. You may change your mind later and want to divide merged cells back. There are three ways to do that in Google Sheets:

- Build a formula using Google Sheets SPLIT function.
- Use the standard spreadsheet instrument – Split text to columns.
- Or try out the enhanced version of the built-in tool – Split text to columns for Google Sheets:
It lets you split cells by any delimiter or even sets of separators, treating them as one and including conjunctions if necessary. It also offers the option to split cells in Google Sheets by position.

If mastering different formulas is not a part of your plan, you will benefit from our Merge Values add-on. The add-on quickly joins records in rows, columns, or the entire range of cells. Its options are crystal clear, and all you are to do is select the range and decide on how the result should look.

- You can choose to
**combine columns**in Google Sheets, separate them with commas and spaces, and place the result to the right of the original records: - Or
**merge rows**in Google Sheets, divide records with line breaks, and clear the contents of selected cells: - Or select the range and have
**all cells merged**into one altogether:If you've got interested in the tool, you can look through everything it does on this special page or in this short video tutorial:

- There's one more utility we offer for concatenating in Google Sheets – Combine Duplicate Rows. On one hand, it merges cells from different rows that have the same key record. On the other hand, it concatenates numbers that are scattered over your table but still belong to the same record:

Learn how to use Combine Duplicate Rows in this video:

I hope by now you've decided which of the ways suits your case best. If you have any other methods in mind, please do share with us in the comments section below. :)

Excel formulas
CSV
Excel functions
Print
Financial functions
Vlookup
Merge data in Excel
SumIf
CountIf
Excel Compare
If statement
Excel Charts
Pivot Table
Conditional formatting
Excel formatting
Excel duplicates
Excel date
Excel tips
Excel macro
Outlook
Google Sheets
Outlook duplicates
Shared email templates

Category: Google Sheets add-ons

## 17 responses to "CONCATENATE function: formulas to merge cells in Google Sheets"

Hi!

Thanks for all this great info. I'm not sure if what I'm trying to do can be done in one formula or if it will take a few steps. I have events being submitted by a Google form and would like to merge the time data from the two cells (start time and end time) to a very specific format in a single cell. You'll see below, the format changes if both times are in the morning or afternoon, if they span noon, or if there are minutes to be included. If it's on the hour, I don't want :00 in the formatting and the a.m. or p.m. needs to be lower case with the periods. Examples:

- If the event starts and ends on the hour and in the same half of the day: 9-11 a.m. OR 6-8 p.m.

- If the event spans noon and is on the hour: 9 a.m.-3 p.m.

- If the event start or end time is during the hour: 9:30-11:45 a.m. OR 8:45 a.m.-4:15 p.m.

- Also, some of the above mixed: 9:15 a.m.-3 p.m. OR 10-11:30 a.m. OR 11 a.m.-3:45 p.m.

I plan to retain the original data columns for sorting.

Thanks for considering if you're willing to tackle this!

Hi there,

Thank you for your comment!

I'm afraid the task is not entirely clear. Please consider sharing a small sample spreadsheet with us (support@4-bits.com) with 2 sheets: the example of the source data and the result you expect to get. I kindly ask you to shorten the tables to 10-20 rows.

Note.We keep that email for file sharing only and don't monitor its Inbox. Please do not email there. Once you share the file, just confirm by replying here. We'll look into it and see if there's an easy solution.In the meantime, try checking out these articles, you may find some useful and related info there:

IF function in Google Sheets

Date and time in Google Sheets

Calculate time in Google Sheets

Hi, would like to know how to convert my cell in text plain after concatenate a lot of columns, without the formula, Justo to be able to move my entire column without loosing the information?

Thanks

Hi Sandra,

We have a couple of tools for the task:

Hello, I need to create a formula that says if cell A2 says "January" and cell B2 says "Gloves" then take the value shown in range H2:H600 and put the final value in cell N2. eventually the formula will be used to determine how many instances of gloves were ordered in January.

Thank you

Hello Shelagh,

If I'm getting your task correctly, you should use the IF function or even COUNTIF function for the task. The links I provided will open the corresponding articles for you to check out.

Thank you so much! you saved me!

Had followed your formula : =CONCATENATE(A2,CHAR(10),B2,CHAR(10),C2,CHAR(10),D2)

Managed to merge the multiple columns in a single column but how can i add the column names in front for eg.

Last Name : Johnny

First Name : Bonny

State : CA

Street : 126, Stoneybrook Road

Hello MJ,

Just add those column names or references to them into the formula to see them in the result.

For example, assuming your table starts with A1, the formula below will return you the first two rows you mentioned:

=CONCATENATE(A1," : ",A2,CHAR(10),B1," : ",B2)

This is exactly what I was looking for. However, the formula doesn't know what to do if one of the cells doesn't have data. Is there a way to compensate for that? Kind of like ignore if blank?

I will definitely check out the your PowerTools add-in.

Hello Amy,

Glad to know this article is helpful :)

Could you please share the exact formula you're using and specify which part can meet blanks?

Thank you for getting back to me and I apologize for not being more clear in my description. I'm combining First Name, Middle Initial, Last Name on a spreadsheet but there are a few instances that the person doesn't list a Middle Initial. When that happens the formula doesn't work. Is there a command that I can put in the formula that will fix this?

Thank you for the description, Amy,

Assuming those names are in columns A:C and the names themselves start from the 2nd row, here's the formula for you to try:

=TEXTJOIN(" ",TRUE,A2:C2)

Please can someone help me, I want to make an inquiry reference automatically generated once the form is submitted through google forms

Hello Rameez,

for us to be able to suggest anything, please describe your task in detail.

Hello,

My issue is to concatenate (op.gtin13 = "0000768000724" )

the number 0000768000724 being in the middle column, when I concatenate the result is:

(op.gtin13 = "768000724" ) but I need the 0s...

Could someone help me ?

Thank you in advance!!

Elena

Hello!

I am not sure I fully understand what you mean.

You haven't written what values you combine. You can put a zero in front of the number if the number is written as text, if the format is set to "text". You can add 0000 to each number if you use the custom number format "0000##; -0000##"