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