从单个单元格中提取由逗号分隔的数据

时间:2015-09-28 13:48:05

标签: excel excel-vba extract vlookup vba

我有一个包含会议相关数据的电子表格。其中一个单元格具有会议名称,括号内的参与者数量如下。

员工会议(65),人力资源会议(15),养老金会议(4)

单个小区中可以有1到9个会议。我正在寻找一种方法来提取单独的单元格中的每个会议名称和编号(逗号之间的所有信息)。

有谁知道如何做到这一点?

2 个答案:

答案 0 :(得分:3)

选择包含会议的列。

然后在功能区的“数据”选项卡上选择Text to Columns

选择'Delimited'和'逗号'作为分隔符。

答案 1 :(得分:0)

Excel不太擅长使用单元格存储进行递归编程。

解决方案可以通过在多行上复制的6种不同的公式来解决。在这个例子中:

Example of the solution in Excel

The formulas are:
- in B2: =FIND(",",A$1,B1+1)
- in C2: =MID(A$1,B1+1,B2-B1-1)
- in D2: =FIND("(",C2)
- in E2: =FIND(")",C2)
- in F2: =MID(C2,1,D2-1)
- in G2: =MID(C2,D2+1,E2-D2-1)

可以将这些单元格复制到下一行而不进行调整,因为A $ 5的行是垂直锚定的。

说明:

  • 在B列中,从前一个逗号(从0开始)到最后一个逗号(以LEN()+ 1结尾)执行搜索。
  • 在C列中,逗号之间的字符串是分开的
  • 在列D中
  • 找到'('字符的位置
  • 在列E中
  • 找到')'字符的位置
  • 在F栏中,'('字符被选中)之前的文字
  • 在G栏中,选择'('和')'字符之间的数字