left是提取全角字符数量,可以理解为2个字节1位,leftb是提取半角字符数量,可以理解为1个字节一位。
1月,这两个字符包含3个字节,按全角提取两位就是4个字节,所以就提取完了,就是1月,按半角提取2位,就是2个字节,第2个字节是中文“月”的一半,它无法提取,所以就是1了。
left是按字符数算,不论是1字节的半角字母还是2个字节的全角汉字,统统不看长度,只按“1”个字符算,所以left(“1月”,2)会返回2个字符,即1月。
leftb是按字符的编码长度算,半角字母计1,全角汉字计2,所以“1月”的计数为3,即31D4C2。在你取leftb(“1月”,2)时,他会返回字符串的前2个编码,即31D4,但是这时出现了问题,31是1,而D4在单字节编码里是没有文本的,所以你得到的结果只有1能显示出来,后边的D4(即月的第一个编码)会以空格显示,但用len函数来计算的话长度仍为2。
PS:你把leftb("1月",2)的结果复制到空单元格粘贴为值,进入编辑状态就可以看到1后边确实是有个空格的
left函数是取文本字符串从左边起第几位,也就是你看到的内容从左往右取;
Lfetb是指字符串从左边起第几位取值。
两者相差文本二字,含义不一样。
就用你的列子:比如“1月”,用left函数。=Left(A1,2)还是“1月”,是因为1和月都是1个文本字符串;但是汉字在Excel编码里面是占用两个字符串的,所以1月总的字符串数是3,
所以用leftb函数,=Leftb(A1,2)就只能取到1,要取到1月还差1个字符串,=leftb(A1,3)的值才是1月。
最简单而直白的理解,就是你在A2开始的A列输入中文开头和字母或者数字开头的数据文本,然后在B2、C2和D2、E2单元格分别输入公式:
=LEFT(A2,1)
=LEFTB(A2,1)
及
=LEFT(A2,2)
=LEFTB(A2,2)
你就可以很直白地理解汉字为2个B字节,数字或者字母是1个B字节,而这个函数多出来的B就是统计B字节的概念,没有这个B 的话就是统计字符的个数,祝你成功学习理解…………
Excel中的LEFT函数是从一个文本字符串的第一个字符开始返回指定个数的字符;
LEFTB函数是返回字符串最左边指定数目的字符,与双字节字符集(DBCS)一起使用;
一个中文文字占用两个字符,所以LEFTB提取的结果要比LEFT提取的结果少,在全角状态下和半角状态下的符号字符串也同等中文字符。
如:A1=2021年5月,两个公式结果如下:
=LEFT(A1,5)结果为:2021年
=LEFTB(A1,5)结果为:2021