Join cells with comma
To join multiple cell values with a comma, you can use a formula based on the SUBSTITUTE and TRIM functions. You can use this same approach to concatenate values in cells with any delimiter you like. In the example shown, the formula in G5 is:
How this formula works
Working from the inside out, the formula first joins the values the 5 cells to the left using the concatenation operator (&) and a single space between each value:
B5&" "&C5&" "&D5&" "&E5&" "&F5
This part of the formula is annoyingly manual. To speed things up, copy &" "& to the clipboard before you start. Then follow this pattern:
[click] [paste] [click] [paste] [click] [paste]
until you get to the last cell reference. It actually goes pretty past.
The result of this concatenation (before TRIM and SUBSTITUTE run) is a string like this:
"figs apples "
Next, the TRIM function us used to "normalize" all spacing. TRIM automatically strips space at the start and end of a given string, and leaves just one space between all words inside the string. This takes care of extra spaces causes by empty cells.
Finally, SUBSTITUTE is used to replace each space (" ") with a comma and space (", "), returning text like this:
Joining cells with other delimiters
To join cells with another delimiter (separator), just adapt the "new_text" argument inside SUBSTITUTE. For example, to join cells with a forward slash, use:
The output will look like this:
The TEXTJOIN function is a new function available in Office 365 and Excel 2019. TEXTJOIN allows you to concatenate a range of cells with a delimiter. With TEXTJOIN, the example above would look like this:
Jon Acampora at ExcelCampus has a cool macro to concatenate a range of cells.