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

Pha*_*ach 4 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,然后获取子字符串,似乎太多了?

VBa*_*008 6

代替

正如多米尼克已经写过的那样:“为什么不将前六个字符替换为空字符串呢?”

=REPLACE(A1,1,6,"")
Run Code Online (Sandbox Code Playgroud)

我已经进行了一些时间测量,但在 50000 条记录时差异不到一秒(对于LEFT, MID, REPLACE& SUSTITUTE)。所以恐怕优雅就是你所能得到的一切。

一项小型研究

我创建这项研究是因为当您从第 n 个字符开始说时,您的n第 -th 字符是7(您的MID-s 是错误的),但您想删除前n-1( 6 ) 个字符。因此,根据您如何提出问题,您可能会在RIGHT或中采用不同的方法MID,并且您会记住REPLACESUBSTITUTE/或可能不会。

在此输入图像描述

A1 (*) 和 B1 (#, ?, *) 的小型学习公式

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

=RIGHT(A1,LEN(A1)-(B1-1))
=RIGHT(A1,LEN(A1)-B1+1)
Run Code Online (Sandbox Code Playgroud)
=RIGHT(A1,LEN(A1)-6)
Run Code Online (Sandbox Code Playgroud)
=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)
Run Code Online (Sandbox Code Playgroud)
=MID(A1,7,LEN(A1))
Run Code Online (Sandbox Code Playgroud)

删除字符串的前 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))
Run Code Online (Sandbox Code Playgroud)

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

=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))
Run Code Online (Sandbox Code Playgroud)

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

=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))
Run Code Online (Sandbox Code Playgroud)

返回删除字符串的前 N ​​个字符,例如 6

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

=REPLACE(A1,1,6,"")
Run Code Online (Sandbox Code Playgroud)