【问题标题】:How to get last word in a cell using Excel Formula如何使用 Excel 公式获取单元格中的最后一个单词
【发布时间】:2018-03-13 07:50:44
【问题描述】:

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

【问题讨论】:

标签: vba excel excel-formula excel-2010


【解决方案1】:

你可以试试这个 UDF,它可以用在另一个子程序或工作表上。

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

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

=GetLastWord(A1)

【讨论】:

  • 可以使用InStrRev查找最后一个空格的位置,而不是拆分成数组:GetLastWord = Mid(Str, InStrRev(Str, " ") + 1)
  • 是的,你可以。 :)
【解决方案2】:

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

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

更好的方法是公式,例如

=TRIM(RIGHT(SUBSTITUTE(AP11," ",REPT(" ",LEN(AP11))),LEN(AP11)))

find text after last space 写的部分:=SUBSTITUTE(AP1," ",REPT(" ",LEN(AP1)))

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

Man                City                V                Stoke

当你然后做 RIGHT(SUBSTITUTE(AP11," ",REPT(" ",LEN(AP11))),LEN(AP11)) 你保证只得到最后一个单词的空格。然后,您可以使用 TRIM 去除这个空白。

【讨论】:

    【解决方案3】:

    据我所知,以下内容对我有用。

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

    我只能假设我的其他方法在获得最终结果时是不可靠的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多