从列列表Excel中创建用逗号分隔

时间:2015-01-10 13:37:25

标签: excel

我正在寻找从列列表中创建一个用逗号分隔的值,我的条件是not_simple单元格不连接,有没有办法,一个公式来创建一个新的单元格,其中包含一个逗号分隔的列表列数组?

下面显示了excel表的示例以及我需要的结果。

http://postimg.org/image/ql7gi4z59/ enter image description here

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

B9 中输入:

=B2 & "," & B3 & "," & B4 & ","& B5 & ","&B6 & ","&B7 & "," & B8

与其他细胞类似。

修改#1

对于更通用的方法,请使用以下 UDF

Public Function KonKatenate(rIn As Range) As String
    For Each r In rIn
        KonKatenate = KonKatenate & "," & r.Text
    Next r
    KonKatenate = Mid(KonKatenate, 2)
End Function

用户定义函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel使用UDF:

      = KonKatenate(B2:B8)

      要了解有关宏的更多信息,请参阅:

      http://www.mvps.org/dmcritchie/excel/getstarted.htm

      http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

      有关UDF的详细信息,请参阅:

      http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

      必须启用宏才能使其生效!

答案 1 :(得分:1)

如果从this thread获取用户定义函数,您应该能够在工作表中使用它来收集正确的连接。首先抓取UDF并按照该页面上的说明将其放入模块中。

接下来应用数据►排序&过滤器►过滤您的数据并过滤列A,不简单

接下来,您将需要切换到R1C1单元寻址,因为R1C1中的所有单元的公式相同,但A1单元寻址的相对单元地址不同。对于Excel 2010,这是在Excel选项►公式►R1C1参考样式( Alt + F T 然后 F 然后 Alt + R 然后确定)。

将以下公式粘贴到过滤范围内的数据单元格中。根据您的样本,这将是R9C2或B9。

=udf_stitch_Together(INDEX(C,MAX(INDEX(ROW(R1:R[-1])*(R1C1:R[-1]C1="not simple"),,),1)+1):INDEX(C, ROW(R[-1])), ",")

R1C1 Concat formula

由于您处于R1C1模式,因此可以对列B中的每个单元使用相同的公式,其中列A 不简单。向下填充,然后向右填充到C4或D列。删除过滤器以获得结果,如上所述。

填写公式的另一种方法可能是选择您的范围,然后使用GoTo►特殊►空白。将公式放入第一个单元格并按 Ctrl + Enter

使用与进入R1C1模式相同的方法返回A1单元寻址。

编辑:可以将公式放入第一个单元格,然后在过滤后的数据上向下和向右填充。