一、常用提取字符的函数R7n检测VBA
1、LEFT、RIGHT、MID、FIND、LEN、LENBR7n检测VBA
LEFT、RIGHT、MID三个函数从英文含义上讲依次为左、右、中,也就是分别从左边、右边、中间提取字符。R7n检测VBA
LEN函数和LENB函数的作用就是计算文本字符串的长度,它的结果是返回一个数字,两者的区别在于LEN函数会忽略中文和全角符号等双字节字符,而LENB函数会将1中文字符计算为2个字符。R7n检测VBA
2、一般应用R7n检测VBA
例如我在A1输入文本日期“2022-09-24”R7n检测VBA
提取年:=LEFT(A1,4),从A1单元格左边开始提取4个字符。R7n检测VBA
提取月:=MID(A1,6,2),月份从6个字符开始,长度为2个字符。R7n检测VBA
提取日:=RIGHT(A1,2),从A1单元格右边开始提取2个字符。R7n检测VBA
查找“-”出现的位置:=FIND("-",A1),结果为5,FIND函数的第三个参数忽略,表示从字符串的第一个字符开始搜索。R7n检测VBA
3、复杂应用R7n检测VBA
在很多得公路资料中,例如压实度、平整度、弯沉等等,经常需要提取出段落桩号中的起始和终点路程数,方便我们计算段落长度,再根据段落长度计算出检测频率等等。如图:桩号中“K”后面的数字代表千米,“+”后面的数字代表米,这里需要在E列计算段落长度。R7n检测VBA
提取小里程m数:R7n检测VBA
通过观察可以发现,要提取第一个“K”和第一个“+”之间的字符,如B1单元格中的55,,先要找到这两个字符第一个出现的位置,=FIND("K",B2)=1、=FIND("+",B2)=4,再用MID 函数提取中间的字符,R7n检测VBA
=MID(B2,FIND("K",B2)+1,FIND("+",B2)-1-(FIND("K",B2)))R7n检测VBA
K字符在第1个位置,需要从K后面的一个字符开始提取,所以MID函数开始位置为FIND("K",B2)+1,要提取的结束位置为+前面的一个字符,提取长度等于结束位置减去开始位置加1,上面公式简化了一下。R7n检测VBA
提取B2单元格中的466R7n检测VBA
从字符“+”开始,字符“-”结束R7n检测VBA
=MID(B2,FIND("+",B2)+1,FIND("-",B2)-(FIND("+",B2)+1))R7n检测VBA
C2单元格公式R7n检测VBA
=MID(B2,FIND("K",B2)+1,FIND("+",B2)-1-(FIND("K",B2)))*1000+MID(B2,FIND("+",B2)+1,FIND("-",B2)-(FIND("+",B2)+1))R7n检测VBA
小里程桩号=55*1000+466=55466R7n检测VBA
提取大里程m数:R7n检测VBA
这个相对复杂一些,主要是改变FIND函数的第三个参数,小里程中都是从第一个位置开始,但后面的字符“K”和“+”都是第二次出现,开始搜索位置应该从第一次出现的位置后面一个字符开始搜索。R7n检测VBA
=FIND("K",B2,FIND("K",B2)+1)、FIND("+",B2,FIND("+",B2)+1)R7n检测VBA
MID函数“+”后面的提取个数可以多一些R7n检测VBA
D2单元格公式=MID(B2,FIND("K",B2,FIND("K",B2)+1)+1,FIND("+",B2,FIND("+",B2)+1)-(FIND("K",B2,FIND("K",B2)+1)+1))*1000+MID(B2,FIND("+",B2,FIND("+",B2)+1)+1,9)R7n检测VBA
小里程桩号=55*1000+921=55921R7n检测VBA
长度=55921-55466=455R7n检测VBA
上表中需要特别注意的是:桩号列字符如“K”、“+”、“-”等等,一定要大小写一致,在同一模式输入,否则可能会造成公式错误,可以先用查找替换的方法将字符改成统一格式。R7n检测VBA
提取字符函数原理比较简单,主要是要清楚中间的逻辑顺序。R7n检测VBA |