APP下载

Excel基础知识-文字函式例项公式编写思路和优化方法

消息来源:baojiabao.com 作者: 发布时间:2024-05-14

报价宝综合消息Excel基础知识-文字函式例项公式编写思路和优化方法

今天要聊的内容是文字函式中有“改”能力的函式SUBSTITUTE,它的功能是将把文字的某些字元或字串替换成新的内容,预设为4个引数,3必输引数和1选输引数;函式使用的结构图如下:

SUBSTITUTE函式结构图功能:通过替换规则生成新的文字内容,并不对源文字的任何影响;

源文字:原型为源文字,不过它的引数形式还是很多变的,可以为引用单元格或表示式,不管单元格的内容是原型资料,还是表示式中的数学表示式和函式表示式,其最终结果还是会成文字,数字,逻辑值或错误编码四项之一,若遇到错误编码不会任何处理直接返回错误编码;

原来字元:要替换源文字的字元或字元组合,

新字元:原来字型将会被新字元字元组合替换掉;

N:表示替换原来字元的出现的第几次,并替换成新字元或字元组合;此引数为选输引数,不输预设只要在“源文字”中出现的“原来字元”都会被“新字元”替换掉,输入2,就在第2次出现“原来字元”替换成“新字元”;

说到这基本上文字常用函式就说的差不多了,我们通过一个网上的网友给我发来的问题,来将之前学过的知识融汇一下;

问题:网友A:我在工作中遇到这样的资料:“LTE-罗源霍口徐坪-4LX2156751-V1(20141215)宏站设计图纸”,需要提取“罗源霍口徐坪”,我们就一起随着我的思路一起看看这个公式怎么写吧?

思路1

首先通过find函式或search函式需要确认第一个“-”位置和第二个“-”的位置,通过这两位置计算出“罗源霍口徐坪”的字元数,然后用mid函式从文字内容撷取“罗源霍口徐平”;

资料情况:源资料在A列3-9行,B列为输出撷取内容的列,示意图如下:

资料示意图定位公式:哪就开始编写公式吧,我们选用search函式来查询“-”的位置,第一个“-”位置很好写:X=search("-",A3);第二“-”位置编写起来需要点技巧,需要search函式的第三个引数,从第几个字元开始查询,否则无法定位第二个“-”的位置,我们只需重search("-",A3)+1字元开始就可以定位啦,公式为:Y=search("-",A3,X+1);

复习:search和find区别:search函式支援万用字元,不能区分大小写;find区分大小写,不支援万用字元,详细了解: Excel基础知识-文字函式之FIND和SEARCH

撷取公式:编写撷取公式为:=mid(A3,X+1,Y-X-1)带入Y,X后公式为:=MID(A3,SEARCH("-",A3)+1,SEARCH("-",A3,SEARCH("-",A3)+1)-SEARCH("-",A3)-1);为了公式适应所有单元格,这些位置都需要通过公式计算得到,如果你能写出公式,说明你已经对文字常用的函式基本掌握了,哪么我们可以把这个公式简化吗?当然可以啦,哪必须就要用到今天的函式SUBSTITUTE,一起来看看思路2公式是如何写出来的吧!

思路2

我们从上以公式可以看出,定位第一个“-”,公式并不复杂,需要优化的是定位第二“-”的位置的部分,哪我们该如何优化掉Y中X+1?如果我们把第一个“-”替换成其它符号或替换成“”是不是就可以直接用search函式就能查出第二个“-”的位置了啊,而在撷取撷取函式中第三个引数是需要撷取的字元的长度而不是第二个“-”的位置,从资料资料“LTE-”又都是固定的,所以我们干脆直接将这个4个字元整体替换为“”,这样撷取的字元数Z=search("-",substitute(A3,"LTE-","",1))-1(为了防止删除A1单元格其它部分的“LTE-”,只替换第一次出现的即可)。

优化公式:再将X,Z代入mid(A3,X+1,Z)=mid(A3,search("-",A3)+1,search("-",substitute(A3,"LTE-","",1))-1)是不是比上面的公式短了不少呢?再来看看另一种思路,是如何实现该更能的吧!

思路3

既然我们可以通过SUBSTITUTE函式可以将字串的“LTE-”,去掉,我们又可以获得第二个“-”位置,这样我们就可以直接使用left函式撷取也可以获得我们需要的内容啊,先来回顾一下left函式的用法left(文字,长度),在这我要代入的文字并非源文字而是经过处理的字串:substitute(A1,"LTE-","",1),长度则是在处理后的内容中,找到"-"的位置减1就是撷取字串的长度,那么公式的长度是不是就有了:长度=search("-",substitute(A1,"LTE-","",1)-1,哪整体的公式组合一下即可以了:=left(substitute(A1,"LTE-","",1),search("-",substitute(A1,"LTE-","",1)-1);对于这三种方法,你更喜欢哪一种呢?你又该如何选择呢?我们把公式修改到什么程度就可以了呢?

三个公式方案的效果图带着问题我们就一起来看看衡量公式好坏的标准之一:通用性也可以叫相容性,它是衡量公式对于资料依赖程度的参考线,就拿上面的例子来说,第2个公式和第3个公式依赖都比第1个要大,因为后2个公式的使用的手动输入条件更长,条件中都有手动输入的“LTE-”,而第1个公式只有“-”;如果文字中不存在“LTE-”,后面的两个公式是无法得出结果的。当然你也可以完善后两个公式,也能达到跟公式1一样的通用性;至于怎么完善,其实我在文中已经提到了,看看聪明的你能不能把它完善?

如果你通过自己学的知识也能写出跟我一样的公式,而且也能完善功能,哪你能算什么水平呢?刚及格,其实我们上面写的三个公式表面上看都没有问题,其实存在的问题挺多了,需要优化的方面也很多,这些问题会在以后的文章中逐步介绍,今天的我们就先聊到这里,欢迎你在工作遇到的问题在下方留言,我看到后会第一时间回复,在工作学习的路上,我们一路同行,有缘下文再见!

本文为一点号作者原创,未经授权不得转载

2019-11-30 17:52:00

相关文章