今年初夏,微软在其Office预览体验计划的测试频道发布了14个新函数,其中TEXTAFTER函数下隐藏着一个非常有用的功能,可让你分离出单元格中的最后一个单词。
目前,这14个新函数已对订阅Office预览体验计划中测试版本的微软365用户开放,并最终会向订阅月度或半年度更新频道的微软365用户开放。这些新函数包括TEXTSPLIT、TEXTBEFORE、TEXTAFTER、VSTACK、HSTACK、CHOOSECOLS、CHOOSEROWS、DROP、TAKE、EXPAND、TOCOL、TOROW、WRAPCOLS和WRAPROWS。
应用TEXTBEFORE和TEXTAFTER函数
在使用这些函数的头几个星期,我便发现了TEXTAFTER函数一个有趣的变化——允许用户从单元格的末尾搜索信息,从而分隔出一个短语中的最后一个单词,或者类似于“cost center”(成本中心)等较长短语的最后一段文字。不过,首先还是来看看TEXTBEFORE和TEXTAFTER函数的常规用法。
如图1所示,A列为零件编号,格式均为一个前缀、一个破折号加一个后缀。要分离破折号前或后的信息,以前需要使用一个包含MID、LEFT和FIND函数的组合公式(如图1中的第16和17行)。但现在通过TEXTBEFORE函数就可以做到这一点:使用=TEXTBEFORE(A5,"-"),可以分离破折号之前的信息;使用=TEXTAFTER (A5,“-”),可以分离破折号之后的信息。这大大改善了旧有的函数组合公式。
Excel团队将TEXTBEFORE和TEXTAFTER函数设计成了包含多个参数,完整的函数语法是=TEXTAFTER(text, delimiter, instance_num, match_mode, match_end, if_not_found)。
文本参数(text)用来确定将要搜索的文本。分隔符参数(delimiter)不局限于单个字符,如破折号(-)、句点(.)或特定字母,也可以是“cost center”等短语。
“instance_num”参数用于搜索特定出现的分隔符;“match_mode”参数用来确定分隔符是否区分大小写;“match_end”参数可以防止在未找到分隔符的情况下出错。例如,=TEXTBEFORE("John Smith"," ")将会返回结果“John”,但如果单元格中没有空格,这个公式就失效了,如公式=TEXTBEFORE("Cher"," ")将会返回#N/A错误,因为在文本中没有找到空格。如果指定1作为match_end参数,那么文本的结尾就会被视为分隔符,如公式=TEXTBEFORE("Cher"," ",,,1)可以防止#N/A错误并返回结果“Cher”。“if_not_found”参数是在未找到分隔符时,显示预先指定的替代公式或文本。
“INSTANCE_NUM”参数
如果数据中有多个相同类型的分隔符,该如何处理?例如,如果需要查找第三个破折号之后的所有内容,可以指定instance_num参数为3,即=TEXTAFTER("123-456-789-ABC","-",3),返回结果为“ABC”。
但如果不知道单元格中有多少分隔符呢?老方法是将MID、FIND、SUBSTITUTE、LEN和SUBSTITUTE函数全部放在一个LET函数中,才能达到使用一个公式来分割最后一个分隔符后所有内容的目的。图2单元格A14中的一大串公式通过删除所有分隔符,再将新结果的长度与原始文本的长度进行比较,得出一个单元格中有多少个分隔符。多亏了Excel专家Charles Williams,以后再也不需要用到这个复杂公式了。
Williams在其Fast Excel工具中引入了一个概念,允许instance_num等参数从单元格的左边或右边边缘开始计数。如果instance_num参数是正数,则Excel从左开始计数;如果instance_num参数是负数,Excel将从单元格的末尾开始搜索。
因此,如果要找到最后出现的分隔符,可以指定-1作为instance_num参数。
Excel团队在TEXTAFTER和TEXTBEFORE函数中的instance_num参数遵循了这一惯例用法。在图2中,可用公式=TEXTAFTER(A4," ",-1)查找短语最后一个单词,这个公式会找到单元格中最后一个空格之后的所有内容,远比单元格A14中显示的公式简单得多。
这14个新函数中的大部分函数都有助于简化公式。如果你经常遇到这类问题,可以加入Office预览体验计划,提前使用这些新函数。请注意,预览体验用户有两个频道可选,记得选择测试频道。
Bill Jelen,MrExcel.com负责人,著有61本Excel方面的书籍,帮助制作了IMA Excel数据分析课程(bit.ly/2Ru2nvY)和IMA Excel 365系列课程(bit.ly/2qDKYXV)。可发送问题至IMA@MrExcel.com,它们有可能成为以后文章的主题。
于婕 译,郭强 校