从Excel中的string中提取两个数字

我有一个string,我需要提取两个数字,并将其分成两列。

ID:1234567 RXN:89012345 ID:12345 RXN:678901 Column 1 Column 2 1234567 89012345 12345 678901 

数字可以是不同的字符数。 我能够通过使用以下函数获得第2列数字:

= RIGHT(G3,FIND( “RXN:”,G3)-5)

不过,我很难分开身份证号码。

此外,我需要这是一个function,因为我将使用macros来使用许多电子表格。

一种方法是:

  1. select所有的数据 – 假设它始终是一个string – 这意味着一个单元格有一行ID和RXN号。 所以如果你有100行这样的数据,select所有的
  2. 转到数据选项卡,文本到列
  3. selectDelimited >> Next >>在这里selectSpace ,在Otherinput一个冒号( : )>> Finish
  4. 你会在第一列,每个单元格中获得“ID” 每个单元格第二列ID号; RXN在第三列每个单元和RXN否在第四列每个单元。
  5. 删除不需要的列

在列A中的数据中,在B1中input:

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

并抄下来。 在C1中input:

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

并抄下来:

在这里输入图像说明

B公式是捕获由另外两个子string封装的子string的一个非常标准的方法。

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

 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)) 

我们用空格replace一长串空格,并在原始string中: 然后,我们提取第二个和第四个项目,并修剪多余的空间。