2013-02-13 48 views
2

这是我工作中最糟糕的情况。我必须自动分离这组字符串,但只是不知道我应该使用哪个函数。这非常困难!我需要为Excel中的数据库工作的下一步分隔字符串。用于特定模式的字符串分隔公式

下面是数据的例子:

在列A中待分离的串 -

java-1.6.0-openjdk-1.6.0.0-1.21.b17.el6.x86_64 
java-utils-1.6.0.0-1.el6.x386 
Java-1.7.0-openjdk-1.7.1-3.1.5 
gdb-1.6-5.2.7.el6 

字符串被成功地分离,在柱后的部件BCDEFGHI -

#   name  #   Version # OSLv # Architecture # 
java # 1.6.0 #openjdk # 1.6.0.0 # 1.21.b17 # el6 # x86_64 # 
java# utils#   # 1.6.0.0 # 1   #el6_3 #x386 # 
Java#  #   # 1.7.1 # 3.1.5 #  #  # 
gdb #  #   # 1.6  #5.2.7  #el6 #  # 

(在我看来,如果我们将字符串分成两部分,就像

java-1.6.0-openjdk-1.6.0.0-1.21.b17  #####  .el6.x86_64 

然后分割成特定部位以后会更容易......也许吧!?)

谢谢你很多关于帮助每一位。

我将接受任何解决方案,您可以提供我以后的学习:d

“#”标记显示字符串的部分分离成不同的细胞。

+0

我赞成非平凡分裂! – Ksenia 2013-02-13 10:48:23

+1

JQuery会做到这一点! ;-) – 2013-02-13 12:31:51

+0

关于JQuery的零知识,但谢谢你,我会研究它之后 – eathapeking 2013-02-14 02:50:46

回答

2

以下公式是不是一个完整的解决方案,但应该提供一个起点,为您体会那种字符串操作,你需要做:

从字符串的头部进行解析:

=LEFT(A1,SEARCH("-",A1)-1) 

    =IFERROR(MID(A1,LEN(A6)+2,SEARCH("-",A1,LEN(A6)+2)-LEN(A6)-2),"-") 

    =IFERROR(MID(A1,LEN(A6&B6)+3,SEARCH("-",A1,LEN(A6&B6)+3)-LEN(A6&B6)-3),"-") 

    =IFERROR(MID(A1,LEN(A6&B6&C6)+4,SEARCH("-",A1,LEN(A6&B6&C6)+5)-LEN(A6&B6&C6)-4),"-") 

(我已经离开了几个在字符串为您做的中间。)

从字符串的尾部解析:

=IFERROR(MID(A1,SEARCH("el",$A1),SEARCH("x",A1)-(SEARCH("el",A1)+1)),"-") 

    =IFERROR(RIGHT(A1,LEN(A1)-SEARCH("x",A1)+1),"-") 

该字符串不具有相同数量的元素,并且不是所有的元素都被破折号(“ - ”)分离的事实使得这更复杂比一般的字符串解析任务。当你陷入困境时,你应该回来一个更具体的问题。

+0

是的问题是,如果所有元素分开 - 破折号是很容易.. 非常感谢你:) – eathapeking 2013-02-13 08:52:30

+2

看这个主题为好:http://stackoverflow.com/a/14453972/1953175 - 这几乎是相同的麻烦解决了 – 2013-02-13 09:29:41

+0

...................... – eathapeking 2013-02-13 09:43:20

相关问题