eXcel公式,用于将一个单元格中的所有列值分隔为“,”

时间:2017-06-09 09:03:23

标签: excel

查看列A包含的值如下图所示。我想要一个公式来做到这一点。 我不想像

这样的解决方案
=CONCATENATE(A1,",",A2,",",A3,",",A4,",",A5) 

enter image description here

3 个答案:

答案 0 :(得分:1)

Excel 2016有一个名为TextJoin()的新函数,其语法为

= TextJoin(分隔符,忽略空单元格,范围)

有了这个,您可以使用公式

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

enter image description here

评论后编辑:这是Excel 2016中的新公式。它在2010年不存在。

但是有许多用户定义函数(UDF)宏比Concatenate做得更好,并且可以在Excel 2010中使用。例如in this post by Jon Acampora。但是,您需要在要使用该特殊功能的每个电子表格中使用VBA代码,并且所有这些电子表格都需要是启用宏的工作表才能使这些特殊功能起作用。

答案 1 :(得分:0)

试试这个

 =A1&","&A2&","&A3&","&A4

或创建自定义VBA功能

Public Function Join(rng As Range, delimiter As String) As String
Dim cell As Range
For Each cell In rng
    Join = Join & cell.Text & delimiter
Next cell
' remove the last delimiter
Join = Left(Join, Len(Join) - Len(delimiter))
End Function

答案 2 :(得分:0)

对于一个很长的列表,一个更复杂的公式,但在复制时“自动调整”的公式可能适合:

=IF(A2="",LEFT(B1&A2&",",LEN(B1&A2&",")-2),B1&A2&",")

假设在顶部插入一行,B1为空白。输出将在行的ColumnB中,Row1之后的ColumnA中有第一个空白单元格。