在Excel中从字符串中提取两个数字

时间:2016-02-19 17:38:03

标签: excel

我有一个字符串,我需要提取两个数字并分成两列,如下所示。

ID:1234567 RXN:89012345
ID:12345 RXN:678901

Column 1   Column 2
1234567    89012345
12345      678901

数字可以是不同数量的字符。我可以使用以下函数获取第2列编号:

= RIGHT(G3,FIND(" RXN:",G3)-5)

但是,我很难将ID号分开。

另外,我需要这个功能,因为我将使用宏来使用许多电子表格。

3 个答案:

答案 0 :(得分:1)

执行此操作的方法是:

  1. 选择所有数据 - 假设它始终在字符串中 - 这意味着一个单元格中有一行ID为ID& RXN nos。因此,如果您有100行这样的数据,请选择所有数据
  2. 转到数据标签,文字到列
  3. 选择Delimited>> Next>>在此处选择Space,在Other中输入冒号(:)>> Finish
  4. 您将在第一列,每个单元格中获得“ID”;每个单元格的第二列中的ID号; RXN在每个单元格的第三列中,RXN在每个单元格的第四列中没有。
  5. 删除不需要的列

答案 1 :(得分:1)

使用 A 列中的数据,在 B1 中输入:

=MID(A1,FIND("ID:",A1)+LEN("ID:"),FIND(" ",A1,FIND("ID:",A1)+LEN("ID:"))-FIND("ID:",A1)-LEN("ID:"))

并复制下来。在 C1 中输入:

=MID(A1,FIND("RXN:",A1)+LEN("RXN:"),9999)

并复制下来:

enter image description here

B 公式是捕获由其他两个子字符串封装的子字符串的非常标准方法。

答案 2 :(得分:0)

如果您的格式始终如您所示,那么:

B1:  =TRIM(MID(SUBSTITUTE(SUBSTITUTE($A1," ",REPT(" ",99)),":",REPT(" ",99)),99,99))

C1:  =TRIM(MID(SUBSTITUTE(SUBSTITUTE($A1," ",REPT(" ",99)),":",REPT(" ",99)),3*99,99))

我们用原始字符串中的space:替换了一长串空格。然后我们提取第2和第4项并修剪掉额外的空间。