在字符截取时,我们最常用的是MID+Find组合,Find查找分隔符位置,MID负责截取,但如果你学会text函数,你就知道前者是多么的low。看一个常见的例子:
【例】如下图所示,A列为个人信息,需要用公式把姓名、年龄、学历和籍贯提取出来
C3公式:=TEXT(1,B3)
D3公式:=TEXT(-1,Substitute(B3,"0","!0"))
E3公式:=TEXT(0,B3)
F3公式:=TEXT("A",B3)
可能大部分同学都不理解公式的含义,为什么用数字就可以拆分字符串。这和text的第二个参数有关。
text的第二个参数是一串代码,和单元格自定义格式类似,它可以给第一个参数值设置数值格式。而根据数值的类型,分为四个位置:
正数;负数;零;文本
当第一个参数为正,text就会返回第一个正数位的内容,为负返第二个位置内容,为0返第三个,文本则返回第4个。
反之,如果单元格中是用分号分隔的文本,我们就可以用不同格式的符号返回对应位置的值。如下图所示-1就可以提取出第2个值。
=TEXT(-1,B11)
那如果不是分号怎么办?用substitute函数替换
=TEXT(-1,SUBSTITUTE(B11,",",";"))
还有一个问题,如果含有0,结果就会出错。原因是0是自定义格式的强制占位置,并不是数值0。
可以把替换为!0 就能解决这个问题。
=TEXT(-1,SUBSTITUTE(B3,"0","!0"))
因为单元格格式只有四个位置,你是不是以为只有截取有4段内容的字符?嘿嘿,太年轻了。它可以截任意多个位置。来,截取第5个。技巧是把被提取的字段两边替换成” ;“,再用-1提取第2段即可。
兰色说:在最新office365版本中,新增了3个实力超强的文本拆分函数textsplit、textbefore和textafter。但用新版本的人很少,另外它们只限于文本的拆分,综合实力上还是比text差的多。
领取专属 10元无门槛券
私享最新 技术干货