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.
=SUBSTITUTE(TRIM(A1&" "&B1&" "&C1&" "&D1&" "&E1)," ",", ")
In the example shown, the formula in G5 is:
=SUBSTITUTE(TRIM(B5&" "&C5&" "&D5&" "&E5&" "&F5)," ",", ")
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:
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:
=SUBSTITUTE(TRIM(B7&" "&C7&" "&D7&" "&E7&" "&F7)," ","/")
The output will look like this:
USING TEXTJOIN Function
New in Excel 2016 is the TEXTJOIN function, which allows you to concatenate a range of cells with a delimiter. With, TEXTJOIN, the example above would look like this: