在Excel中解析单元格中的文本

时间:2017-05-22 14:28:20

标签: excel

关于仅使用公式解析单元格中的文本并将它们组合在一起,我有一个简单的问题。

这就是我所拥有的:

AX_BY_CZ_NP [1234]

除了NP

之外,我能够把所有东西都搞定

以下是我对BY,CZ的公式,而我目前只停留在新西兰的最后几位

BY - =MID(A1, FIND("_",A1) + 1, FIND("_",A1,FIND("_",A1)+1) - FIND("_",A1) - 1)

CZ - =MID(A1,FIND("_",A1)+1+(FIND("_",A1,FIND("_",A1)+1)-FIND("_",A1)),FIND("_", A1, FIND("_", A1,FIND("_",A1)+1)+1)-FIND("_",A1,FIND("_",A1)+1)-1)

NP - =MID(A9,FIND("_",A1,(FIND("_",A1,FIND("_",A1)+1)-FIND("_",A1))+FIND("_", A1, FIND("_", A1,FIND("_",A1)+1)+1)-FIND("_",A1,FIND("_",A1)+1)-1)+1, ????)

此时我的大脑已经被炒了,并且不知道如何变得更加复杂并将所有内容都映射出来。

如果您知道CZ的最后部分,请提供帮助!

2 个答案:

答案 0 :(得分:0)

而不是所有嵌套的可怕字符串公式,您可以使用UDF快速无痛地执行此操作:

转到VBE(Ctrl + F11),制作一个新模块,并将其粘贴到:

 Function strtok(strIn As String, strDelim As String, intPos As Integer) As String
   'take in a string, split by delimiter, and return position
   strtok = Split(strIn, strDelim)(intPos - 1)
 End Function

然后在您的工作簿中,您可以使用这个新的strtok()公式:

enter image description here

答案 1 :(得分:0)

使用此公式:

=TRIM(MID(SUBSTITUTE(SUBSTITUTE($A1," ","_"),"_",REPT(" ",999)),(COLUMN(A:A)-1)*999+1,999))

将它放在第一列,然后拖动/复制。

enter image description here