我需要在 XLS 单元格中找到最后一个空间

Dhe*_*eer 24 worksheet-function microsoft-excel

我有一个带有文本值的 Excel 工作表,例如在 A1 中:“这是文本”。我需要找到最后一个空格字符的位置。是否有一个excel公式可以给我想要的结果?我试过 FIND 和 SEARCH,但是这些都是从左边开始的,我需要的是从右边开始。

m45*_*73r 39

如果空白值表示“空格”,而 XLS 表示 Excel,则可以使用此公式(假设要查找最后一个空格的测试是 in A1):

=FIND("?",SUBSTITUTE(A1," ","?",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))
Run Code Online (Sandbox Code Playgroud)

您可以将其分为 3 个部分:

  • LEN(A1)-LEN(SUBSTITUTE(A1," ",""))给你空格的数量,让我们称之为x
  • SUBSTITUTE(A1," ","?",[x])将用x雪人替换第th 个空格(所以是最后一个),
  • FIND("?",[...])会给你雪人的位置。这是最后一个空格的位置。

  • +1 给出了一个很好的、详细的答案,以及迄今为止最具创意的替换角色。 (11认同)

bar*_*ini 9

这是另一种方式,A1 中允许任何字符(甚至雪人!)

=LOOKUP(2^15,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))))

FIND 有一个定义搜索开始位置的第三个参数,如果你将一个 1 到 n 的整数值数组(其中 n 是 A1 的长度)应用于该参数,你会得到一个数组,最后一个数字是搜索的位置最后一个空间。

LOOKUP然后通过搜索大于该数组中可能找到的任何值的值来提取该数字,在这种情况下,找到最后一个数字

Excel 2010或以后你也可以使用这样的AGGREGATE功能

=AGGREGATE(14,6,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))),1)

FIND返回与之前相同的数组,通过使用 14 作为第一个参数AGGREGATE和 1 作为最后一个参数,您将获得数组中的最大值,同时忽略错误 [6]