如何在Excel中有效锁定单元格保护数据完整性
3827
2022-06-08
在 Excel 中,Mid函数用于从文本中提取从指定位置开始的指定字符数,而MidB函数用于从文本中提取从指定位置开始的指定字节数;它们的区别为:前者把全角(如汉字)与半角(如数字和字母)都算作一个字符,后者把全角算作两个字节、半角算作一个字节,一个以字符数算,另一个以字节数算。
Mid函数和MidB函数常与 Len、LenB、Find、VlookUp、LookUp 和 Match 等函数组合使用;其中 Mid 与 Len 和 LenB 组合实现反向提取字符,Len 和 LenB 通常用于计算要提取字符开始位置或提取长度;Mid 与 Find 组合实现截取单位,Find 通常用于确定要提取字符的开始位置。
1、Mid函数表达式:MID(Text, Start_Num, Num_Chars)
中文表达式:MID(文本, 起始提取位置, 提取字符数)
2、MidB函数表达式:MIDB(Text, Start_Num, Num_Bytes)
中文表达式:MIDB(文本, 起始提取位置, 提取字节数)
3、说明:
A、Mid函数把全角和半角字符(如汉字与字母)都算作一个字符,MidB函数把全角算作两个字节、半角算作一个字节。
B、Start_Num 为要提取字符的起始位置,如果要提取第一个字符,则 Start_Num 为 1;Start_Num 必须大于等于 1,否则将返回值错误#VALUE!;如果 Start_Num 大于文本长度,将返回空值(即"");如果 Start_Num 小于文本长度,但加上 Num_Chars 后大于文本长度,则只返回到文本最后一个字符。
C、Num_Chars 为要提取字符数,它必须大于或等于 0,否则将返回值错误 #VALUE!。
D、Num_Bytes 为要提取字符的字节个数,它必须大于或等于 0,否则也返回将值错误 #VALUE!。
(一)从第一个字符开始提取与返回空值("")的实例
1、假如要提取“Excel2016 教程”中的 Excel;双击 B1 单元格,输入公式 =MID(A1,1,5),按回车,返回 Excel;双击 B1 单元格,把公式中的 1 改为 13,按回车,返回空值;操作过程步骤,如图1所示:
图1
2、公式说明:
A、公式 =MID(A1,1,5) 中,A1 为要提取字符的文本,1 为要提取字符的起始位置,5 为提取字符数,公式的意思是,从“Excel2016 教程”中第一个字符(即 E)开始提取,共取 5 个字符,即提取 Excel。
B、公式 =MID(A1,13,5) 要从 A1 中的文本(“Excel2016 教程”)的第 13 个字符开始提取,由于文本只有 12 个字符(空格也算一个字符),所以返回空值(即 "")。
(二)只返回到文本最后一个字符的实例
1、假如要提取“Excel2016 教程”中的“教程”。双击 B1 单元格,把公式 =MID(A1,11,3) 复制到 B1,按回车,返回“教程”二字;操作过程步骤,如图2所示:
图2
2、在“Excel2016 教程”中,第 10 个字符为空格,第 11 字符为“教”,它后面只有一个字,而公式 =MID(A1,11,3) 要提取 3 个字符,由于从“教”字到末尾不足 3 个字,所以只提取到末尾字符。
提示:如果要提取的字符比较长,不知道要提取多少个字符,把第三个参数设置为一个比要提取字符数大的数值。
(三)提取字符数小于 0,返回 #VALUE! 错误实例
1、双击 B1 单元格,把公式 =MID(A1,6,1) 复制到 B1,按回车,返回 2;双击 B1,把 1 改为 0,按回车,返回空;再次双击 B1,把 0 改为 -1,按回车,返回值错误 #VALUE!;操作过程步骤,如图3所示:
图3
2、公式 =MID(A1,6,1) 意思从第 6 个字符开始返回 1 字符,即返回 2;公式 =MID(A1,6,0) 返回 0 个字符,即返回空;公式 =MID(A1,6,-1) 返回 -1 个字符,由于要提取的字符数必须大于 0,因此返回值错误 #VALUE!。
(一)提取数字和字母的实例
1、假如要从“Excel2016 教程”中提取 Excel2016。双击 B1 单元格,把公式 =MIDB(A1,1,9) 复制到 B1,按回车,返回 Excel2016;操作过程步骤,如图4所示:
图4
2、公式 =MIDB(A1,1,9) 中,A1 为要提取字符的文本,1 为开始提取位置,9 为要提取的字节数;公式的意思是,从字符串“Excel2016教程”的第一个位置 E 开始提取 9 个字符,恰好是 Excel2016,说明MidB函数与Mid函数一样,把数字和字母都当作一个字节。
(二)提取汉字的实例
1、假如要从“Excel2016 函数使用教程”中提取“函数”。双击 B1 单元格,把公式 =MIDB(A1,11,4) 复制到 B1,按回车,返回“函数”二字;双击 B1,把 4 改为 5,按回车,同样返回“函数”;操作过程步骤,如图5所示:
图5
2、公式 =MIDB(A1,11,4) 从第 11 个字符开始提取 4 个字节,由于每个汉字为两个字节,因此提取出两个汉字,即提取到“函数”;而公式 =MIDB(A1,11,5) 也返回“函数”,说明提取全角字符时,MidB函数会自动减掉半个字节,即 5 取 4,如果取 5,则要提取的第三个字“使”会返回乱码,因为一个汉字必须由两个字节组成,半个字节只能是乱码;如果“函数”二字后是 数字或字母,则会取 5,例如“Excel2016 函数2使用教程”,公式 =MIDB(A1,11,5) 返回“函数2”。
(一)Mid + Len函数组合实现反向提取字符(即从右往左提取字符)
1、假如要从右边开始提取“Excel2016 函数使用教程”6 个汉字。双击 B1 单元格,把公式 =MID(A1,LEN(A1) - 6 + 1,6) 复制到 B1,按回车,返回“函数使用教程”;操作过程步骤,如图6所示:
图6
2、公式 =MID(A1,LEN(A1) - 6 + 1,6) 说明:
A、公式中的 6 是要提取的字符数;LEN(A1) 用于计算 A1 字数个数,全角与半角都算一个字符,返回结果为 16,则 LEN(A1) - 6 + 1 等于 11,即计算出要开始提取的字符,该位置恰好是“函”字。
B、则公式变为 =MID(A1,11,6),然后从第 11 个字符开始提取 6 个字符,即截取得“函数使用教程”。
提示:MidB函数也可以反向提取字符,公式 =MIDB(A1,LEN(A1) - 6 + 1,6) 用 MidB 可以这样写:=MIDB(A1,LEN(A1) - 6 + 1,12),把公式复制到 B2,按回车,也返回“函数使用教程”,操作过程步骤,如图7所示:
图7
公式 =MIDB(A1,LEN(A1) - 6 + 1,12) 中,6 为要提取的字符数,12 为要提取的字节数,为什么一个为 6、一个为 12?因为,Len函数全角和半角都算作一个字符,而MidB函数把全角算作两个字节、半角算作 1 个字节。
(二)Mid + Find函数组合实现从任意指定字符开始提取
1、假如要提取 A 列中数字后面的单位。双击 B1 单元格,把公式 =MID(A1,FIND("升",A1),4) 复制到 B1,按回车,返回“升/瓶”;选中 B1,把鼠标移到 B1 右下角的单元格填充柄上,鼠标变为加号后,按住左键,双击,则提取出剩余单元格的单位;操作过程步骤,如图8所示:
图8
2、公式 =MID(A1,FIND("升",A1),4) 说明:
A、FIND("升",A1) 用于找出 "升" 在 A1 中文本的位置,"升" 为要查找的文本,A1 为要查找 "升" 的文本,另外,FIND("升",A1) 还省略了最后一个参数“查找的开始位置”,默认从第一个字符开始查找。FIND("升",A1) 返回 4。
B、则公式变为 =MID(A1,4,4),即从第 4 个字符开始截取 4 个字符,结果为“升/瓶”。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。