要求找到A列里每个单元格里
第一个汉字所在的位置
结果如B列所示
函数!!!
=MATCH(' ',MIDB(A1,ROW(INDIRECT('1:'&LENB(A1))),1),)
那么什么意思呢?
MATCH是定位函数
MIDB是按字节对文本截取函数,从任意位置截取
ROW是取得行号数字的函数
LENB是判断文本的字节长度的函数
INDIRECT是把文本形式的引用变为真引用的函数
是不是每个都不是太明白?
【重磅解释】
1、LENB(A1),得到A1单元格的字节长度,返回36
2、'1:'&LENB(A1),得到“1:36”这样的文本,看起来像是1到36行这样的引用形式
3、INDIRECT('1:'&LENB(A1)),这里INDIRECT函数把文本形式的1到36行的引用变成真正的单元格行号引用的形式
4、ROW(INDIRECT('1:'&LENB(A1))),得到1到36行的行号,返回36行1列的数组,就是这样的,如下
{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36}
5、MIDB(A1,ROW(INDIRECT('1:'&LENB(A1))),1),这个是按字节来截取A1单元格,分别是按字节数来从A1单元格的第一位开始,截取1位字节的内容,然后从第二位字节开始截取1位的字节内容,以此类推,截取得到的结果是这样的,
{'1';'5';'6';'8';'.';'2';'7';' ';' ';' ';' ';' ';' ';'e';'x';'c';'e';'l';' ';' ';' ';' ';' ';' ';' ';' ';' ';' ';'1';'0';' ';' ';'1';'7';' ';' '}
又因为一个汉字是2个字节,按字节去截取汉字,每个汉字要截取2次,但每次截取出来的结果必然是空格
6、最后用MATCH函数去定位空格这个字符在MIDB截取出来的36个结果里的位置,就是MATCH(' ',MIDB(A1,ROW(INDIRECT('1:'&LENB(A1))),1),)完成最后一击
更多详细解读
请收看我的视频课程
《520节=Excel+PPT+Word小白变大神》
联系客服