Excel:如何合并一列中的所有单元格,并以逗号分隔?

Mel*_*Dog 1 excel excel-formula

我有一个包含 100 多个条目的电子表格。一列由 ID 组成。我需要将它们组合成一个字符串,每个 ID 用逗号分隔,例如:

| 身份证 |

|123| |567| |890|

成为一个具有该值的单元格

123,567,980
Run Code Online (Sandbox Code Playgroud)

我知道我可以concat每个细胞,但有数百个。

有没有办法可以连接整个列,但用逗号分隔?

我得到的关闭是:

=CONCAT(A:A)
Run Code Online (Sandbox Code Playgroud)

但我不知道如何添加分隔符,所以它只是输出:

123567980
Run Code Online (Sandbox Code Playgroud)

Tim*_*ess 5

您可以使用TEXTJOIN

=TEXTJOIN(",",TRUE,A1:A3)
' Output : 123,456,789
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

或者使用 VBA 自定义函数:

=ConcatWithSep(A1:A3,",")

Function ConcatWithSep(Ref As Range, Sep As String) As String

Dim Row As Range
Dim Output As String

For Each Row In Ref
Output = Output & Row.Value & Sep
Next Row

ConcatWithSep = Left(Output, Len(Output) - 1)

End Function
Run Code Online (Sandbox Code Playgroud)

PowerQuery 使用Table.Transpose和的另一个解决方案Table.CombineColumns

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}}),
    #"Transposed Table" = Table.Transpose(#"Changed Type"),
    #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Transposed Table", {{"Column1", type text}, {"Column2", type text}, {"Column3", type text}}, "en-US"),{"Column1", "Column2", "Column3"},Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Merged")
in
    #"Merged Columns"
Run Code Online (Sandbox Code Playgroud)