Excel 具有特定模式的字符串分隔公式

Excel 具有特定模式的字符串分隔公式,excel,excel-formula,vba,Excel,Excel Formula,Vba,这是我工作中最糟糕的情况。我必须自动分离这组字符串,但我不知道应该使用哪个函数。这太难了!我需要分离字符串,以便在Excel中进行下一步的数据库工作 以下是数据示例: 要在A列中分隔的字符串-- 成功分离后的字符串部分,在B C D E F G H I列中-- (在我看来,如果我们先把弦分成两部分,比如 java-1.6.0-openjdk-1.6.0.0-1.21.b17 ##### .el6.x86_64 然后,以后将其拆分为特定部分会更容易……也许吧!?) 非常感谢你的每

这是我工作中最糟糕的情况。我必须自动分离这组字符串,但我不知道应该使用哪个函数。这太难了!我需要分离字符串,以便在Excel中进行下一步的数据库工作

以下是数据示例:

要在A列中分隔的字符串--

成功分离后的字符串部分,在B C D E F G H I列中--

(在我看来,如果我们先把弦分成两部分,比如

java-1.6.0-openjdk-1.6.0.0-1.21.b17     #####     .el6.x86_64
然后,以后将其拆分为特定部分会更容易……也许吧!?)

非常感谢你的每一点帮助

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


“#”标记表示将字符串的各个部分分隔为不同的单元格。

以下公式不是完整的解决方案,但应该为您提供一个起点,让您了解需要执行的字符串操作类型:

从要分析的字符串的开头:

  =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),"-")
(我在绳子的中间留了几个让你做。) 从要分析的字符串的尾部:

  =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),"-")

字符串的元素数不相同,并且并非所有元素都用虚线(“-”)分隔,这一事实使得这比通常的字符串解析任务更加复杂。当你陷入困境时,你应该回答一个更具体的问题。

以下公式不是一个完整的解决方案,但应该为你提供一个起点,让你了解你需要进行的字符串操作类型:

从要分析的字符串的开头:

  =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),"-")
(我在绳子的中间留了几个让你做。) 从要分析的字符串的尾部:

  =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),"-")

字符串的元素数不相同,并且并非所有元素都用虚线(“-”)分隔,这一事实使得这比通常的字符串解析任务更加复杂。当您陷入困境时,您应该返回一个更具体的问题。

对于非常复杂的字符串提取,我倾向于在工作表函数中使用正则表达式


请参阅,以获取可使用/on构建的库。

对于非常复杂的字符串提取,我倾向于在工作表函数中使用正则表达式


请参阅,以获取可使用/在其上构建的库。

是的,问题是如果所有元素都以破折号分隔,则会容易得多。。非常感谢:)再看看这个帖子:-几乎同样的问题也解决了是的,通过你提到上一个问题我有了一个新想法谢谢你>@eathapeking祝你好运,朋友,很高兴我们的社区建议对你有帮助!是的,问题是如果所有的元素都用破折号分开,那就容易多了。。非常感谢:)再看看这个帖子:-几乎同样的问题也解决了是的,通过你提到上一个问题我有了一个新想法谢谢你>@eathapeking祝你好运,朋友,很高兴我们的社区建议对你有帮助!我对非琐碎的分裂投赞成票!JQuery可以做到!;-)关于JQuery的知识为零,但谢谢你,我会在这之后研究它的。我投票支持非平凡的拆分!JQuery可以做到!;-)没有关于JQuery的知识,但是谢谢你,我会在这之后学习它