如何使用空间划分从Excel单元格生成单词?

有没有办法从一个Excel的单元格使用公式生成空间划定的单词列表? 例如,如果我有string:

“我的名字是杰克”

它应该在不同的单元格中生成“我的”,“名称”,“是”,“杰克”。

但它也不应该依赖于string的长度。 举个例子:

“我爱松鼠”

应该用相同的公式来生成“我”,“爱”,“松鼠”。

用你在A1的句子

 B1: =TRIM(MID(SUBSTITUTE($A1, " ", REPT(" ",99)),MAX((COLUMNS($A:A)-1)*99,1),99)) 

并根据需要填写。

当然,如果这不需要是dynamic的,就像@pnuts所评论的那样,仅仅使用以space作为分隔符的文本到列。

如何UDF?

把它放在工作簿中的一个模块中:

 Function WordInString(MyWord As String, WordNum As Long) If Len(MyWord) - Len(Replace(MyWord, " ", "")) < WordNum - 1 Then WordInString = "" Else WordInString = Split(MyWord, " ")(WordNum - 1) End If End Function 

假设你的数据在列A行1,你想从列B开始填充,在B1中input这个公式

 =WordInString($A1,COLUMN(A1)) 

横向和纵向拖动

另外,如果你绝对肯定需要一个本地的Excel公式,试试这个:

 =TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",255)),((COLUMN(A1)-1)*255)+1,255)) 

同样的交易,假设数据从A1开始,把它放在B1中,并上下拖动。