话不多说,在 excel 中进行数据串截取主要使用的是以下几个函数:left, right, mid, len, find。当然,包括它们的组合。
看我文章的读者应该时刻记得:Excel 中单个函数的功能再强大也是有限的,多个函数组合起来使用才能发挥其真正的威力
下面依次讲解
left, right, mid
left 函数用于从左边开始向右截取字符
right 函数用于从右边开始向左截取字符
mid 函数用于截取字符串中间的字符
先看看它们的函数签名:
left 函数签名 right 函数签名 mid 函数签名它们的用法都比较简单,也都类似。left 和 right 函数都只接受 2 个参数,其中第一个参数是被截取的字符串,第二个是要截取的长度,第二个参数都是可选的,如果不指定的话,默认为1。mid 函数接受 3 个参数,第一个也是被截取的字符串,第二个是开始截取的位置,第三个是需要截取的长度。下面看看使用例子。
left(f3, 10) right(f3, 8) mid(e3, 2, 4)以上应该不用多解释,很明了了。
2. len 和 find
len 函数用来获取字符串的长度
find 函数用于在字符串中查找字符
先看看它们的签名:
len 函数只接受 1 个参数,就是需要求长度的字符串。
find 函数相对复杂,它接受 3 个参数,第一个是要查找的内容,第二个是要在哪里去找,第三个是可选的参数,用来指定开始的位置,find 函数是从左到右开始查找的,第三个参数默认为 1,如果我们想从第10个字符开始查找,那么这三个参数设置为10即可以跳过前面的9个字符,在某些特殊场景下是有用的。
看看它们的用法:
len(f3) find("含", f3)第一次出现
3. 组合用法
前面的例子结合起来看,可以发现,left, right, mid 函数中的“截取长度”这个参数是需要人为指定的数字(mid 函数的开始位置也是),而 len 和 find 函数可以返回一个数字。所以理论上,left, right 函数的第二个参数,mid 函数的第二、第三个参数都是可以用 len 和 find 函数来得到的,这样就可以在一些场景下“智能”地实现字符串截取。
考虑这样的一个需求,把下图中 C 列从第2行开始,将括号内的部分去掉(包括括号也去掉。
产品名称图中的C列的长度不一、括号出现位置也不相同,单纯只使用 left, right, mid 函数都是无法实现一次性截取的,使用这些函数只有针对每个单元格去单独写函数,这样显然是不现实的。
但是结合 left 和 find 函数就可以实现!以 C2 为例,解法如下:
=LEFT(C2,FIND("(",C2)-1)
结果如下:
left(c2, find("(", c2)-1)可以看到,这里我们并不需要去数左圆括号“(”前有多少个字符,而是使用 find 函数来帮我们查找。也正是由于 find 函数可以帮我们“动态”地确定“(”的位置,所以前面的函数是可以直接拖拽填充到后面的单元格中的,就可以解决前面的问题:
“动态”截取字符串这里的原理就是使用 left 函数,截取“C列中从左侧第一个字符开始,直到左圆括号减1位置结束”。所以我们先找到这个左圆括号“(”的位置,然后再减1就可以了(因为我们并不需要保留这个左圆括号,所以要减1)。
看看结果:
使用 mid+find+len 实现截取中间内容