Excel文本公式来提取字段中由分号分隔的单词

Excel中的字段包含以分号分隔的单词,例如:

A1 =保存;国家;宝藏;因为;好

如何应用Excel文本公式在其他字段中从该字段生成单独的单词? 例如:

A2 should contain a formula to get the first word ("save") A3 should contain a (different) formula to get the second word ("the") etc. 

但是,即使A1中的值发生变化,例如A1的值改变为,这些公式也应该保持良好

A1 =你好;那里;你是怎么样的

任何在这方面的帮助将不胜感激。

(问题是我自己写的函数在这种情况下是不允许的,我不得不使用findsearchmid等原始函数)

如果你有你的文本parsing在A1然后下面的公式应该工作

在A2中input公式

 =IF(ISERROR(LEFT(A1,FIND(";",A1)-1)),A1,LEFT(A1,FIND(";",A1)-1)) 

在B2中input公式

 =IF(ISERROR(RIGHT(A1,LEN(A1)-FIND(";",A1))),"",RIGHT(A1,LEN(A1)-FIND(";",A1))) 

然后,您可以根据需要复制这些内容。 列A抓取最左边的单词,列B显示要parsing的剩余string。 如果用完的话parsing公式会显示一个空白。 B列也可以隐藏。

你可以创build一个VBA函数来拆分这个例子中的字段:

 Function ExtractElement(str, n, sepChar) ' Returns the nth element from a string, ' using a specified separator character Dim x As Variant x = Split(str, sepChar) If n > 0 And n - 1 <= UBound(x) Then ExtractElement = x(n - 1) Else ExtractElement = "" End If End Function 

那么A2的公式就是: =ExtractElement(A1, 1, ";") ,A3就是: =ExtractElement(A1, 2, ";")等等

如果你可以使用中间公式,那么这将工作:

A1 – 保存;国家;宝藏;因为;好

B1 – 空白

C1 – = IFERROR(FIND(“;”,$ A1,1 +(B1)),LEN($ A1)+1)

将C1复制到D1:H1

C2 – = MID($ A1,B1 + 1,(C1-B1)-1)

将C2复制到D2:H2

行1将显示在A1中的每个分号的位置,因为它开始查看string中的一个字符通过在前一个单元格中find的分号。

例如,单元格E1从D1 + 1 = 10开始在A1中search一个分号。

C1:H1中的iferror语句会捕获当search没有find更多分号时发生的错误,并返回stringA1的全长,在末尾处为假分号加1。

B1需要空白以创build初始零。

单元格C2:H2然后使用Mid函数复制A1string的一部分,从B1:G1,长度为(C1-B1)-1,(d1-c1)-1 etc(minus一个是把自己的分号切掉)

你应该得到:5,9,18,27,31,36在第1行,并在这些单元格下的单个单词。

希望这可以帮助。