Ways to Concatenate Values

by Allen Wyatt
(last updated October 21, 2017)

2

John noticed that Excel provides three ways to concatenate values: Using the & operator, the CONCATENATE function, and the new CONCAT function. He wonders about the differences between these various ways of putting together values and which is the best to use.

Actually, there is another new function (TEXTJOIN) which could also be used to concatenate values. This means that Excel now has four different ways to pull values together into a string.

Before explaining the differences, though, it may be best to define what is meant by "new" when, in this case, discussing "new functions." Specifically it means that the new functions are available to those using Excel 2016 if that version of Excel is based on an Office 365 subscription. This means that if you have Excel 2016 that is standalone, you won't have access to either CONCAT or TEXTJOIN. You only get them with the subscription. If you have an Office 365 subscription and you cannot use CONCAT or TEXTJOIN, you'll want to check for updates and make sure you are updated to the latest version—these two functions have been available since February 2016.

Now for the traditional methods of combining values: There is very little difference between using the & operator or the CONCATENATE function. The biggest theoretical difference is that the CONCATENATE function has a limit of 255 parameters that can be used with it, and the & operator does not. (I say "theoretical" because you've got to do a LOT of work to use 255 parameters with CONCATENATE.) Personally, I prefer to use the & operator for no other reason than it takes less time to type and is clearer to me than the function approach.

The CONCAT function does the traditional approaches one better, so to speak: It allows you to use ranges as parameters. This is actually pretty cool; consider the following usage:

=A1 & A2 & A3 & A4

Pretty straightforward, right? Well, with CONCAT you could simplify to this:

=CONCAT(A1:A4)

It becomes even better if you want to use a rectangular area. The old way is this:

=A1 & A2 & A3 & A4 & B1 & B2 & B3 & B4

Here's how to do it with CONCAT:

=CONCAT(A1:A4, B1:B4)

If you modified this a bit, you can easily combine the values by row within the range:

=CONCAT(A1:B4)

This is equivalent to the following:

=A1 & B1 & A2 & B2 & A3 & B3 & A4 & B4

Now, let's throw the TEXTJOIN function into the mix. This function adds two required parameters before the list of cells or ranges of cells you want to concatenate. These parameters allow you to add both a delimiter and indicate if empty cells should be ignored. Here's an example:

=TEXTJOIN(" ", TRUE, A1:B4)

In this usage, the function automatically adds a space character between each cell value that it concatenates. The delimiter isn't limited to a single character; you could use multiple characters. This sure beats the old way of doing it:

=A1 & " " & B1 & " " & A2 & " " & B2 & " " & A3 & " " & B3 & " " & A4 & " " & B4

The second TEXTJOIN parameter, set to TRUE in this example, indicates whether or not you want to skip blank cells in the ranges you are concatenating. This is really impossible to do with any other concatenation approach, and it makes the TEXTJOIN function very powerful. Plus, it gets rid of "double delimiters" as it truly only includes one delimiter between each value it adds to the resultant string.

Which of these four methods should you use to concatenate your values? It's up to you, but if you are developing workbooks that will be used by those with older versions of Excel, I'd suggest sticking to the & operator or the CONCATENATE function. If, however, you are pretty sure that those using the workbook will always have the latest version of Excel, then I'd blow right past CONCAT and use the TEXTJOIN function almost entirely.

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (4629) applies to Microsoft Excel 2007, 2010, 2013, and 2016.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Changing Datasheet Column Width

To see information in a datasheet better, you may need to adjust column width.

Discover More

Removing Duplicate Cells

If you need to often delete duplicate items from a list, then you'll love the macro presented in this tip. It makes quick ...

Discover More

Mouse Click Event in VBA

Need to know if a particular cell is clicked with the mouse? Excel has no particular event handler for clicking in this ...

Discover More

Program Successfully in Excel! John Walkenbach's name is synonymous with excellence in deciphering complex technical topics. With this comprehensive guide, "Mr. Spreadsheet" shows how to maximize your Excel experience using professional spreadsheet application development tips from his own personal bookshelf. Check out Excel 2013 Power Programming with VBA today!

More ExcelTips (ribbon)

Using the XIRR Function

One of the financial worksheet functions provided in Excel is the XIRR function. This is used to figure out an internal ...

Discover More

Finding the Lowest Numbers

Need to find the lowest numbers in a range of values? It's easy to do using the SMALL worksheet function, or you can use ...

Discover More

Using the INT Worksheet Function

The INT function allows you to convert a value to an integer. The effect the function has depends on the characteristics ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is one more than 7?

2019-12-01 08:39:46

Peter Atherton

I missed pointing out that on the first example with the added text "England" this increaded the ayyay to two items, range, and array so LBound(Args) = 0 & UBound(Ags) = 1

Here is anoher based on the first example on the MS help page

(see Figure 1 below)

Figure 1. Text & Range


2019-12-01 08:27:49

Peter Atherton

You do not have the TEXTJOIN function if you have the Home version of Excel2016. I have tried to reproduce it in VBA. Here is the function, it has an extra variable to return the values in reverse positions.

Function cTEXTJOIN(Delimeter, ignore_empty, order As Integer, ParamArray Args() As Variant) As Variant
Dim i As Integer, tmpRng As Range, c As Range, n As Integer
Dim str As String, counter 'As Integer

For i = 0 To UBound(Args)
Select Case TypeName(Args(i))
Case "Range"
Set tmpRng = Intersect(Args(i).Parent.UsedRange, Args(i))
counter = UBound(Args()) '.Count)
If order = 0 Then
For Each c In tmpRng
n = tmpRng.Count
counter = counter + 1
If Not ignore_empty And Len(c) = 0 Then
str = str & Delimeter
ElseIf counter = n And Delimeter <> " " And i = UBound(Args()) Then
str = str & c
Else
str = str & c & Delimeter
End If
Next c
ElseIf order <> 0 Then
For Each c In tmpRng
n = tmpRng.Count
counter = counter + 1
If Not ignore_empty And Len(c) = 0 Then
str = Delimeter & c & str
ElseIf counter = n Then
str = c & str
Else
str = Delimeter & c & str
End If
Next c
End If
Case "String"
If i = UBound(Args) And order <> 0 Then
str = Args(i) & str
ElseIf i = UBound(Args) And order = 0 Then
str = str & Args(i)
Else
str = str & Args(i) & Delimeter
End If
Case Else
If i = UBound(Args) Then
str = str & Args(i)
Else
str = str & Args(i) & Delimeter
End If
End Select

Next i

cTEXTJOIN = str
End Function

It seems to work like the MS version
(see Figure 1 below)

Figure 1. 


This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.