提取单元格文本中的指定字符和字符串,是excel办公常遇到的问题,而提取的方法比较多,可以使用ctrl+e智能填充,查找和替换结合分列等操作,当然也可以使用函数公式来解决。
尤其在数据量较大,但整体数据都有其一定规律性,那么我们会选择函数公式来提取字符。
虽然智能填充的操作非常简便快捷,但在大量数据且单元格内容较多的情况下,填充的结果可能会超出“掌控”,出现错误。
而使用函数公式,则更为稳定。
下面就通过一个实例,来写一个可以直接套用的公式,提取两个符号间的文本内容。
如下图所示,有一列单元格,它的内容包含了三组不同的符号,有大括号,中括号和小括号。现在我们需要使用一个公式来一键提取不同括号之间的字符内容。
按照习惯,作者先输入公式:=MID(A3,FIND("{",A3,1)+1,FIND("}",A3,1)-FIND("{",A3,1)-1),来提取大括号之间的字符内容。
这个公式包含了两个函数,mid和find,它们是excel中非常常见的文本函数,mid函数是提取单元格指定位置指定字符长度的文本内容,而find函数是返回某个字符在单元格文本中的位置。
从它们的作用可以得到一个信息,也是解题的思路所在,即通过find函数来返回括号符号在单元格文本的位置,然后再使用mid函数从这个位置开始,提取指定长度的字符串内容。
那么我们来看下mid函数的语法:
函数表达式为:=mid(文本,开始位置,字符长度)
第1参数是单元格文本,第2参数是从第几个字符开始,第3参数是提取多少个字符。
由于我们最终的目的是提取两个符号间的字符内容,那么就需要在mid函数的参数嵌套其他函数表达式来求出指定的开始位置和字符长度。
计算一个字符的位置,和字符长度,使用find函数则是优先选项。
来看下find函数的语法:
函数表达式为:=find(查找的字符,文本,开始位置)
第1参数是要查找的字符,第2参数是单元格文本,第3参数是要从第几个字符开始进行查找。
关于mid函数和find函数的具体的基础语法和用法,大家可以参照作者的专栏《Excel100个常见函数快速入门》,来理解它们在这个函数公式中的含义。
接下来我们在单元格中输入三个不同的公式,而这三个公式的不同之处,仅仅是查找的符号不同。
那么我们是不是可以设置一个辅助列,然后通过对单元格引用方式的调整,来达到一键提取两个符号间的字符内容的效果。
如下面动图所示:
完整的公式为:
=MID($A3,FIND(B$8,$A3,1)+1,FIND(B$9,$A3,1)-FIND(B$8,$A3,1)-1)
这里将不同的符号通过单元格引用,而得以进行一键公式填充,需要注意的地方在于单元格的引用方式。
不过在日常工作中,通常我们遇到的都是提取单元格内容某两个符号间的内容,而不是我们这个示例中的三组括号,因此只要记住上文中写下的第1个公式即可,当需要查找两个符号之间的文本内容时,只需要更新一下公式中的符号,便可以得到字符提取的结果。