e.J*_*mes 159 excel excel-formula
我有一个包含字符串列表的Excel电子表格.每个字符串由几个单词组成,但每个字符串中的单词数不同.
使用内置的Excel函数(无VBA),有没有办法隔离每个字符串中的最后一个单词?
例子:
Are you classified as human? -> human?
Negative, I am a meat popsicle -> popsicle
Aziz! Light! -> Light!
Bra*_*adC 203
这个测试并且确实有效(基于Brad的原始帖子):
=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1," ","|",
LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))
Run Code Online (Sandbox Code Playgroud)
如果原始字符串可能包含管道"|" 字符,然后将上面的两个字符替换为源中不会出现的其他字符.(我怀疑Brad的原文被破坏了,因为在翻译中删除了一个不可打印的字符).
奖金:它是如何工作的(从右到左):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))- 原始字符串中的空格计数
SUBSTITUTE(A1," ","|", ... )- 用a 替换最终空格|
FIND("|", ... )- 查找替换的绝对位置|(即最终空格)
Right(A1,LEN(A1) - ... ))- 返回之后的所有字符|
编辑:要考虑源文本不包含空格的情况,请将以下内容添加到公式的开头:
=IF(ISERROR(FIND(" ",A1)),A1, ... )
Run Code Online (Sandbox Code Playgroud)
现在制作整个公式:
=IF(ISERROR(FIND(" ",A1)),A1, RIGHT(A1,LEN(A1) - FIND("|",
SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))))
Run Code Online (Sandbox Code Playgroud)
或者您可以使用=IF(COUNTIF(A1,"* *")其他版本的语法.
当原始字符串在最后位置可能包含空格时,在计算所有空格时添加trim函数:使函数如下:
=IF(ISERROR(FIND(" ",B2)),B2, RIGHT(B2,LEN(B2) - FIND("|",
SUBSTITUTE(B2," ","|",LEN(TRIM(B2))-LEN(SUBSTITUTE(B2," ",""))))))
Run Code Online (Sandbox Code Playgroud)
Jer*_*ire 79
这是我用过的非常成功的技术:
=TRIM(RIGHT(SUBSTITUTE(A1, " ", REPT(" ", 100)), 100))
Run Code Online (Sandbox Code Playgroud)
要获取字符串中的第一个单词,只需从RIGHT更改为LEFT
=TRIM(LEFT(SUBSTITUTE(A1, " ", REPT(" ", 100)), 100))
Run Code Online (Sandbox Code Playgroud)
另外,用包含文本的单元格替换A1.
小智 21
Jerry的答案更强大的版本:
=TRIM(RIGHT(SUBSTITUTE(TRIM(A1), " ", REPT(" ", LEN(TRIM(A1)))), LEN(TRIM(A1))))
Run Code Online (Sandbox Code Playgroud)
无论字符串的长度,前导或尾随空格,还是其他任何内容,它都可以正常工作,而且它仍然非常简短.
Jon*_*Jon 13
我在谷歌上发现了这个,在Excel 2003中测试过它对我有用:
=IF(COUNTIF(A1,"* *"),RIGHT(A1,LEN(A1)-LOOKUP(LEN(A1),FIND(" ",A1,ROW(INDEX($A:$A,1,1):INDEX($A:$A,LEN(A1),1))))),A1)
Run Code Online (Sandbox Code Playgroud)
[编辑]我没有足够的代表评论,所以这似乎是最好的地方... BradC的答案也不适用于尾随空格或空单元格...
[第二次编辑]实际上,它不起作用单词要么......
考虑到新的 Excel 函数:TEXTAFTER(检查可用性),您可以通过一个简单的公式来实现:
=TEXTAFTER(A1," ", -1)
Run Code Online (Sandbox Code Playgroud)