截取字符串,同学位都会想到left函数从左边截、right函数从右边截、mid函数从中间截取。但遇到这样的你如何截取呢?
单元格A1中有一数字串 "32 56 176 12 22",要求使用公式可以截取任一段的数字。如截取第2段为56,截取第3段为176,要不干脆公式向右拖动,把数字一个个全截出来,如下图所示。
有同学说,用分列功能。想法是不错,但有时需要对截取出一段进行二次处理,分列就不行了。
本题要是按一般的思路,就复杂去了。解决此题有一个很绝妙的方法,就是先替换再截取。以截取第2段的数字为例,先看公式吧
=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",20)),20,20))
REPT函数可以生成重复的字符,上面公式中是生成“20个空格组合的字符串”
SUBSTITUTE函数把"32 56 176 12 22"中的单个空格全替换成了20个空格,即
"32 56 176 12 22"
MID(字符串,20,20)从第20个截取(该位置位于第2个字符串之前),截取20个字符。
" 56 "
trim函数可以除去多余的空格。结果即为56.
而下面的公式可以提取出所有的数字。
B1=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",20)),COLUMN(A1)*20-19,20))
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。