LEFT、RIGHT、MID这三个可以理解为按字数提取内容,LEFTB、 、MIDB这三个可以理解为按字节提取内容。 它们的参数是一样的,就是字数和字节数的区别。
▼1. 什么是字节,单字节,双字节。
字节是计算机信息技术用来衡量存储容量的计量单位。
在半角输入状态(ASCII码)下,一个英文字母(不区分大小写)占1个字节,一个数字占1个字节,一个英文标点符号占1个字节,称为单字节。 人物; 一个汉字占2个字节,一个中文标点符号占2个字节,称为双字节字符。
国内外的系统软件代码大多采用半角字符,即ASCII码来完成。 所以我们在使用输入法的时候,一定要默认为“半角”状态。
例如:图1使用文本函数LEN和LENB分别计算字数和单双字节,这样可以更清楚地理解字节和字的概念
图 1:字节数和字数之间的差异
▼2. 了解了单字节和双字节之后,现在让我们了解 6 个提取文本内容的函数。
它们是:LEFT、RIGHT、MID 按字数提取内容; LEFTB、MIDB 按字节数提取内容。
① LEFT函数是“按照需要的字数从左边提取内容”,公式模板:LEFT(文本或单元格,提取几个字)。 例如: =LEFT("I love China",2) 返回单词“I love”。
② RIGHT函数是“按照需要的字数从右边提取内容”,公式模板:RIGHT(文本或单元格,提取几个字)。 例如: =RIGHT("I love China",2) 返回单词“China”。
③ MID功能是“从需要的指定位置开始,按照需要的字数提取内容”,公式模板:MID(文本或单元格,从第一个字开始,提取几个字)。 例如: =MID("我爱美好生活",3,4) 返回的结果是“美好生活”四个字。
④LEFTB函数是“按照需要的字节数从左边提取内容”,公式模板:LEFTB(文本或单元格,提取几个字节)。
例如,1:=LEFTB("I love China",5) 返回单词“I love”加一个空格。 因为一个中文是2个字节,5个字节代表2.5个汉字,因为没有半个汉字,所以用空格代替,最后返回的是“我爱”。
如2:=LEFTB("我爱1314你", 5) 返回结果"我爱1",因为5个字节代表2个中文加1个数字。
⑤ 功能为“从右侧按所需字节数提取内容”,公式模板:(文本或单元格,提取几个字节)。 例如:=(“我爱中国”,5) 返回结果为“中国”,在此空格上添加2个汉字。 因为一个空格也算一个字节,所以一个中文就是2个字节。
⑥ MIDB功能是“从需要的字节位置开始,按照需要的字节数提取内容”,公式模板:MIDB(文本或单元格,从第一个字节开始,提取几个字节)。 例如:=MIDB("我爱美丽?生活",6,8) 返回的结果是“好?健康”,这是一个空格+两个中文+英文符号? + 一名中国人。
分析一下原因⑥:“我爱美”是6个字节,从第6个字节开始就意味着“美”字不完整,因为“美”的位置在第5个字节和第6个字节之间。 字节位置的组合。 不完整的单词只能用空格代替,空格代表1个字节。 英文符号? 也是1个字节,所以8个字节正好是(一个空格+两个汉字+英文符号?+一个汉字)。
▼3. 6个内容提取函数必须与搜索函数FIND和FINDB配合使用才能灵活。
FIND,返回“搜索词”所在的字符数,FINDB,返回“搜索词”所在的字节数,
①公式模板:=FIND(要查找的内容或单元格,要检查的内容或单元格,从字号开始);
②公式模板:=(要查找的内容或单元格,要检查的内容或单元格,从字数开始);
③公式模板:=FINDB(要查找的内容或单元格,要检查的内容或单元格,从字节数开始);
④ 公式模板:=(要查找的内容或单元格,要检查的内容或单元格,从字节数开始);
注意:“待查找内容”的字数不得超过“待检查内容”的字数,并且“待查找内容”必须在“待检查内容”中,否则结果是一个错误值。
如图2所示:
图2:查找函数返回的字数位置和字节数位置
▼4. 搜索函数FIND具有相同的参数并返回相同的结果。 这两个函数有什么区别?
① 函数FIND和FINDB区分大小写,不允许使用通配符。
如1: =FIND("a", "AAaaA", 1) 返回3,因为在FIND和FINDB函数眼中:大写A与小写a不同,第三个参数“1”表示从第一个数字开始查找a,返回的结果是第一个a的位置,第一个a在第三个字号的位置。
例如2: =FIND("a", "AAaaA", 4) 返回4,第三个参数"4"表示从第4个数开始查找a,而第4个数只是小写的a,所以结果返回的是4。
如3:=FIND(" ","我爱你",1)返回3,因为"我爱"后面有一个"空格",而且第一个的双引号中也有一个"空格"参数,返回结果为 3 ; 如果第一个参数的双引号中没有“空格”,则返回结果为第三个参数的数字。
FINDB也是如此,从第一个字节或第四个字节开始。
② 和 is 不区分大小写,允许使用通配符。
什么是通配符? 通配符是一种特殊的语句,主要包括星号(*)和问号(?),用于模糊搜索内容。
星号(*)可以代表一个或无数个字符; 如果您不确定是否有内容,也可以添加星号(*)。 例如NOTE这个词,你可以通过*note或者通过*te找到它。
问号(?)仅代表一个字符,且该字符必须存在。 例如,单词NOTE,您可以使用no?e 或no?? 找到它,但注意? 找不到,因为注释后没有内容; 改成note*也没问题,因为*表示内容是可选的none。
总结一下FIND和FIND的区别:FIND区分大小写,可以使用通配符,并且相辅相成。 FINDB 和同理心。
▼5. 案例说明
①情况一,如图3所示:由于地址不太规则,所以第三行有两个“城市”字符,第四行没有省份。 如果想直接用公式来完成,需要嵌套很多函数,很容易出错。 这里,添加辅助列方法来快速拆分和提取内容。
图3:拆分地址内容
1 在单元格 B2 中输入公式:=(LEFT(A2,FIND("省",A2,1)),"")。 因为第四行没有省,所以如果函数没有嵌套在外面的话,就会出现错误值,也就是错误值可以改成我们想要的任意值,这里就变成了空值“”。 详情参见图4:
图 4:提取省份
2 提取城市的内容,此时使用辅助列1。 在辅助列的单元格 F2 中输入 =RIGHT(A2,LEN(A2)-LEN(B2)),然后在城市列的单元格 C2 中输入 =LEFT(F2,FIND("city",F2,1))。 详情见图5:
图5:提取城市内容
3 提取区县市的内容,此时使用辅助栏2。 在辅助列 G2 单元格中输入 =RIGHT(F2,LEN(F2)-LEN(C2)),然后输入 =LEFT(G2,SUM((FIND({"县","区","市"}, G2,1),0))),因为是数组模式,必须按CTRL+SHIFT+Enter三个键,否则会出错。 详情参见图6:
图6:提取区、县、市
4 提取街道内容,在E2单元格中输入公式=RIGHT(G2,LEN(G2)-LEN(D2))即可直接提取街道内容,具体见图7:
图 7:提取街道内容
通过添加辅助列,我们避免了MID功能,并使用更简单的方法来提取更复杂且不太规则的地址内容。
② 情况2:提取数字开头后的内容。 在B2单元格中输入公式=(A2,LENB(A2)-(("?",A2,1)-1)),以中文为双字节,数字为单字节,求出数字的位置。 详情参见图8:
图8:查找数字后面的内容