使用Excel文本解析函数从具有复杂格式的字符串中提取

时间:2013-05-22 18:16:12

标签: excel excel-formula formula

我有一个项目列表,样本如下:

(CompanyName){space}(PartNumber ending with -){space}(Revision Level).pdf
Company 100-50006- Rev. A.pdf
Company Two 6001241- Rev. CN.pdf
CompanyThree 109581- Rev. B.pdf

我的目标是使用Excel获取三条独特的信息:Company Name, Part Number, Revision

修订很容易捕获。我试图找到一种方法来捕获公司(从任何数值的第一次出现中分离出来)。我也试图找到一种方法来捕获整个零件号。

我可以使用什么函数来定位第一个数字字符,并执行LEFT(A2,LEN(FUNCTION HERE)-1),其中-1是由间距引起的?

同样,我想做点什么来找MID(A2,LEN(FUNCTIONHERE TO FIND BEGINNING NUMERIC), LEN(FUNCTIONHERE TO FIND SPACE OR "REV" AND SEGREGATE AFTER SUCH)

2 个答案:

答案 0 :(得分:0)

好的,我不知道公司名称中是否有更多空格,但对于您提供的样本,以下公式可以运作:

=IF(ISERROR(FIND("-",LEFT(A2,FIND(" ",A2,9)))),LEFT(A2,FIND(" ",A2,9)),LEFT(A2,FIND(" ",A2,8)))

=IF(ISERROR(FIND("-",LEFT(A2,FIND(" ",A2,9)))),MID(A2,FIND(" ",A2,9)+1,FIND(" Rev.",A2)-FIND(" ",A2,9)-1),MID(A2,FIND(" ",A2,8)+1,FIND(" Rev.",A2)-FIND(" ",A2,8)-1))

虽然有点长^^;

它适用于Company Two。由于T是字符串中的第9个索引,因此默认公式将查找修订版内的下一个空格,并且还会获取-,我在条件中使用该-。如果有MID,则表示公司名称中有一个空格,因此,重置第8个索引中的空间搜索。

+1只是按照相同的原则运作,-1Company the first删除多余的空格。

注意:如果公司名称中有两个以上的空格,则不起作用,例如: Companies Twenty或在第9个字符后面有空格的名称,例如{{1}}。

答案 1 :(得分:0)

在Word(原始)正则表达式的帮助下,这可能会容易得多。加载到Word,全部替换使用通配符勾选:首先([0-9])使用^ t \ 1然后( - )使用\ 1 ^ t并加载回Excel。 (处理公司名称中空格数量的棘手问题)。