Excel从第n个位置获取子字符串,直到字符串末尾

时间:2019-02-26 08:15:10

标签: excel excel-formula

那么如何从第n个位置到字符串的末尾获取子字符串?

在单元格A1 Name: Thomas B.

上输入

预期输出:Thomas B.

我知道一些解决方法,但是我想知道是否还有其他优雅的方法? (某种=RIGHT(A1, -6) ....)

  1. =MID(A1, 6, 999999) // 999999看起来不太好

  2. =MID(A1, 6, LEN(A1) - 5) //必须计算2次,首先获取len,然后获取子字符串,似乎工作量太大?

4 个答案:

答案 0 :(得分:3)

嗯,您的两种方法都已经可以使用,但是您也可以使用此方法:

=RIGHT(A1,LEN(A1)-6)

(您自己的问题中几乎有这个问题)

或这个:

=TRIM(MID(A1,FIND(":",A1)+1,100))

(FIND()函数返回搜索字符串的数字位置,因此非常适合用于动态子字符串)

答案 1 :(得分:2)

REPLACE

正如多米尼克(Dominique)已经写道: “为什么不只用空字符串替换前六个字符?”

=REPLACE(A1,1,6,"")

我已经做了一些时间测量,但是对于50000条记录(对于LEFTMIDREPLACESUSTITUTE)来说,相差不到一秒钟。因此,恐怕 ELEGANCE 就是您要得到的一切。

一项小型研究

我创建此研究的原因是,当您从第n个字符说起时,您的n个字符是 7 (您的MID-s是错误),但您要删除前n-1 6 )个字符。因此,根据您表达问题的方式,您在RIGHTMID中可能会采用不同的方法,并且您会记得REPLACESUBSTITUTE,或者可能不会。

enter image description here

A1(*)和B1(#,?,*)的小研究公式

从第N个字符到末尾获取字符串,例如7

=RIGHT(A1,LEN(A1)-(B1-1))
=RIGHT(A1,LEN(A1)-B1+1)
=RIGHT(A1,LEN(A1)-6)
=MID(A1,B1,LEN(A1)-(B1-1))
=MID(A1,B1,LEN(A1)-B1+1)
=MID(A1,B1,LEN(A1))
=MID(A1,7,LEN(A1)-6)
=MID(A1,7,LEN(A1))

删除字符串的N个首字符,例如6

=RIGHT(A1,LEN(A1)-B1)
=RIGHT(A1,LEN(A1)-6)
=MID(A1,B1+1,LEN(A1)-B1)
=MID(A1,B1+1,LEN(A1))
=MID(A1,7,LEN(A1)-6)
=MID(A1,7,LEN(A1))

在字符后获取字符串,例如“”

=RIGHT(A1,LEN(A1)-(FIND(B1,A1)))
=RIGHT(A1,LEN(A1)-(FIND(" ",A1)))
=MID(A1,FIND(B1,A1)+1,LEN(A1)-FIND(B1,A1))
=MID(A1,FIND(B1,A1)+1,LEN(A1))
=MID(A1,FIND(" ",A1)+1,LEN(A1)-FIND(" ",A1))
=MID(A1,FIND(" ",A1)+1,LEN(A1))

在字符串后获取字符串,例如”:“

=RIGHT(A1,LEN(A1)-(FIND(B1,A1)+LEN(B1))+1)
=RIGHT(A1,LEN(A1)-FIND(B1,A1)-LEN(B1)+1)
=RIGHT(A1,LEN(A1)-FIND(": ",A1)-LEN(": ")+1)
=MID(A1,FIND(B1,A1)+LEN(B1),LEN(A1)-(FIND(B1,A1)+LEN(B1))+1)
=MID(A1,FIND(B1,A1)+LEN(B1),LEN(A1)-FIND(B1,A1)-LEN(B1)+1)
=MID(A1,FIND(B1,A1)+LEN(B1),LEN(A1))
=MID(A1,FIND(": ",A1)+LEN(": "),LEN(A1)-FIND(": ",A1)-LEN(": ")+1)
=MID(A1,FIND(": ",A1)+LEN(": "),LEN(A1))

返回以删除字符串的N个首字符,例如6

=SUBSTITUTE(A1,LEFT(A1,6),"",1)

=REPLACE(A1,1,6,"")

答案 2 :(得分:1)

为什么不将前六个字符替换为空字符串?

=SUBSTITUTE(A1;LEFT(A1;6);"";1)

答案 3 :(得分:1)

另一种可能性是,您创建一个值为2 ^ 31-1(= 2147483647)的常数,这是32位系统上的最大有符号整数值,并给它起了一个很好的名称,例如MaxInt,然后第一个公式也将高效且美观:

=MID(A1, 6, MaxInt)

您可以使用Ctrl + F3添加名称。如果您对快速计算感兴趣,将其设置为2147483647而不是2 ^ 31-1可能会有一些优势(很少)。

相关问题