How to concatenate in Excel and combine two columns

Type =CONCATENATE(A2, " ", B2) beside the two columns and fill it down: it joins the first name, a space and the last name. =A2&" "&B2 does the same in fewer characters, and TEXTJOIN joins a whole row and skips its blank cells.

= click to change

C2 = Marco·Rossi CONCATENATE joins its arguments in order: the first name, a space in quotes, the last name. Filled down, each row joins its own names.

A sign-up form or an export often splits what you want in one cell across several: first and last names, the parts of an address, a code and its number. Putting them together is called concatenating, and you’ll meet three ways to do it at work: the CONCATENATE function, the shorter & sign, and TEXTJOIN for a whole row at once.

First, join a staff list’s names both ways in the sheet below. Then each job gets a small sheet of its own: a range, blank cells, and the dates and amounts that come out as plain numbers unless you tell Excel how to write them.

Lesson

This is Witsheet, Witsy’s in-browser spreadsheet. It works like Excel and checks each step as you go.

Combine two columns with CONCATENATE

CONCATENATE takes its pieces in order and joins them end to end. =CONCATENATE(A2, " ", B2) is the first name, a space and the last name. It adds nothing of its own between them, so a space, a comma or a word goes in as a piece of its own, in quotes. Fill the formula down and each row joins its own cells.

C2 = Marco·Rossi Three pieces: a cell, a space in quotes, a cell. Leave the middle one out and you get MarcoRossi.

=CONCATENATE() click to change
A2, " ", B2 pieces
Up to 255 of them, each a cell, text in quotes, or a formula of its own.

A number goes in without quotes. Text always needs them: =CONCATENATE(A2, Dear) shows #NAME?, because Excel reads Dear as the name of something it can’t find.

Join cells with the & sign

The & sign does the same job as CONCATENATE, and Microsoft’s own page on CONCATENATE suggests it instead. =A2&" "&B2 gives Marco Rossi too. Each & joins what is on either side of it, so a longer join is a chain: =B2&", "&A2 puts the last name first, and =A2&" "&B2&" ("&C2&")" adds a department in brackets after the name.

Combine columns with Flash Fill

Flash Fill joins columns by example. Type the full name for the first row, Marco Rossi, and press Ctrl+E, on a Mac too: Excel works out the rule and fills the rest of the column. It writes values, not formulas, so nothing updates when a name changes, and for a list that changes, a formula is the better tool. One example can also fit the wrong rule; separating first and last names shows it happen on a name with a middle initial.

CONCATENATE, CONCAT or TEXTJOIN?

Microsoft replaced CONCATENATE with CONCAT in Excel 2016, and keeps CONCATENATE so older workbooks still work. Its page says CONCATENATE “may not be available in future versions of Excel” (as of November 2026). Given cells one by one, the two give the same answer. They part company when you give them a range.

E2 = J. In Microsoft 365, CONCATENATE doesn’t join a range: it gives each cell back on its own, spilled across the row. It only joins the arguments you list one by one.

=A2:C2) click to change
CONCATENATE( function
Which function gets the whole row as one range.

So for a whole row, CONCAT joins the cells with nothing between them, and TEXTJOIN joins them with a delimiter. Microsoft lists CONCAT for Office 2019 and Microsoft 365, so in a workbook that has to open in an older version, CONCATENATE or & is the safe choice.

Join a range and skip blank cells with TEXTJOIN

TEXTJOIN takes the delimiter once, as its first argument, and puts it between every value. Its second argument, ignore_empty, decides what a blank cell does: TRUE skips it, and FALSE keeps it, with a delimiter beside nothing. Addresses show the difference, because not every address has a unit number.

E3 = 880·Pine·Ave,·Denver,·CO One delimiter for the whole range, and TRUE skips the empty unit with the comma it would have brought.

=TEXTJOIN(", ", , A2:D2) click to change
TRUE ignore_empty
TRUE skips empty cells; FALSE keeps them, and the delimiter that comes with each.

TRUE also skips a cell whose formula returns empty text, "". And TEXTJOIN joins a column the same way as a row: =TEXTJOIN(", ", TRUE, A2:A50) makes one comma-separated list of everything in A, ready to paste into an email.

Keep a date’s or a number’s format when you join it

A cell’s format only changes how it looks. Underneath, a date is a count of days and an amount is a plain number, and a join takes what’s underneath: a due date of March 14, 2026 joins as 46095. TEXT writes a number the way a format code says, and its answer is text, ready to join.

D2 = Marco owes 1234.5 by 46095 A join takes the value under the format, not what the cell shows: 1234.5 for the amount, and 46095 for the date, the day count Excel stores for March 14, 2026.

=A2&" owes "&&" by "& click to change click to change
B2 amount
The amount: the cell itself, or TEXT writing it with a dollar sign and two decimals.
C2 due
The date: the cell itself, or TEXT writing it out in the format code you give.

Some format codes to start from: "$#,##0.00" for dollars and cents, "0%" for a percentage, "mmm d, yyyy" or "m/d/yyyy" for a date. A long decimal joins with up to 15 digits, so =A2&" "&1/3 ends in 0.333333333333333, and TEXT(1/3, "0.00") gives 0.33.

Merge two columns without losing data

Excel’s Merge & Center button isn’t for this. It merges cells, not what’s in them: merge Marco in A2 with Rossi in B2, and the merged cell keeps Marco and drops Rossi. Excel warns you first, but the warning is easy to click past.

To merge two columns into one, join them in a new column with any formula above. Copy that column and paste it back over itself with Paste Special → Values, so it holds the names themselves rather than formulas that read the old columns. Then delete the old columns. Witsheet doesn’t have Merge & Center yet, so try that button in your own Excel.

Learn the rest of Excel the same way

Witsy’s Excel course teaches a few hundred small skills, called Wits, the way this page teaches combining columns: in a real spreadsheet, a step at a time. The placement test finds the ones you already have.

Your Wit map

Test your spreadsheet Wits.

Take a few minute test to see how good you actually are with spreadsheets. Witsy creates a map of the Wits you should learn next.

Take the placement test Or just start learning →
new unproven weak mid strong very strong super strong