Excel技巧:删除单元格中最后一个点之后的所有内容
解决Excel删除单元格最后一个"."之后内容的问题
兼容所有Excel版本的公式
要保留最后一个"."及之前的所有内容,可使用以下公式:
=LEFT(A2,FIND("~",SUBSTITUTE(A2,".","~",LEN(A2)-LEN(SUBSTITUTE(A2,".","")))))
公式原理:
LEN(A2)-LEN(SUBSTITUTE(A2,".","")):计算单元格中"."的总数,比如100.200.300.400里有3个".",结果即为3。SUBSTITUTE(A2,".","~",3):把第3个"."替换成特殊字符~(选单元格中不会出现的字符即可),此时内容变为100.200.300~400。FIND("~",...):定位~的位置,也就是原内容中最后一个"."的位置。LEFT(A2, 位置):提取从开头到该位置的所有内容,正好保留最后一个"."及之前的部分。
适用于Excel 365/2021及以后版本的简化公式
如果你的Excel支持动态数组函数,可使用更简洁的TEXTBEFORE:
=TEXTBEFORE(A2,".",-1)&"."
公式原理:
TEXTBEFORE(A2,".",-1):-1表示匹配最后一个".",提取该分隔符之前的内容(比如100.200.300.400会提取出100.200.300)。- 末尾加上
&".",补回最后一个".",得到目标结果100.200.300.。
你原来的公式失效原因
你使用的=LEFT(A2,LEN(A2) - SEARCH(".",A2))问题在于:SEARCH(".",A2)只会定位第一个"."的位置,计算出的长度是从第一个"."到末尾的字符数。用LEN减去这个值后,LEFT提取的是第一个"."之前的内容(比如100.200.300.400会得到100),不符合需求。
内容的提问来源于stack exchange,提问作者MJK
相关产品推荐
相关产品推荐

