截取字符串,同学位都会想到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))