如何使用Excel公式获取单元格中的最后一个单词

时间:2017-10-02 08:40:28

标签: excel vba excel-vba excel-formula excel-2010

我试图在单元格中找到最后一个单词但是,似乎没有出现获取单元格的最后一个单词。它似乎得到部分匹配并且无法正常工作。我正在使用=IFERROR(RIGHT(AP2,SEARCH(" ",AP2)-1),AP2)。这对于获取单元格中的第一个单词非常有用,即使第一个单词是单元格中唯一的单词也是如此。关于为什么没有正确使用最后一个字的任何想法? enter image description here

3 个答案:

答案 0 :(得分:1)

您可以尝试使用此UDF,它也可以在另一个子例程或工作表中使用。

Function GetLastWord(ByVal Str As String) As String
Dim arrStr
arrStr = Split(Str, " ")
GetLastWord = arrStr(UBound(arrStr))
End Function

如果你需要在工作表上使用它,假设你的字符串在A1中,那么试试这个......

=GetLastWord(A1)

答案 1 :(得分:1)

您的公式基于字符串中第一次出现的空格。

例如使用" Man City V Stoke"在公式SEARCH("",AP11)中寻找第一次出现在第4位的空格。然后从中减去1并将其作为要从中返回的字符数。右边的原始字符串。所以你得到了正确的(" Man City V Stoke",3),这是" oke"。

更好的方法是公式,例如

= TRIM(右(替换(AP11,"",REPT("",LEN(AP11))),LEN(AP11)))find text after last space

写的部分: = SUBSTITUTE(AP1,"",REPT("",LEN(AP1)))

这将空格插入字符串(16)的长度,代替每次出现的空格,即

Man                City                V                Stoke

当你做正确的时候(SUBSTITUTE(AP11,"",REPT("",LEN(AP11))),LEN(AP11)) 保证只能获得空格,后跟最后一个单词。然后使用TRIM摆脱这个空白区域。

答案 2 :(得分:0)

据我所知,下面对我有用。

=TRIM(RIGHT(SUBSTITUTE(AP40," ",REPT(" ",100)),100))

我只能假设我的另一种方法在获得最后一个字时是不可靠的。