怎麼在字符串中提取數值?(二)

今天我們來說下字母加數字的文本中提取數字的方法及提取數字的通用方法。


第一步,找出數值所在的位置

怎麼在字符串中提取數值?(二)

用函數“=IF(ISNUMBER(--MID(C26,ROW($1:$30),1)),ROW($1:$30))“,找出數值所在的位置。單元格返回結果是數組,FALSE是第一個字符的判別結果。

ISNUMBER(--MID(C26,ROW($1:$30),1)),mid函數將文本的內容一個一個提取出來,再用isnumber函數判斷是否為數值。我們可以看下mid和isnumber函數的返回結果,如下圖:

怎麼在字符串中提取數值?(二)

我們可以看到MID函數將文本的字符一個一個提取出來了,isnumber函數中,數值所在的位置返回的結果是TRUE,文本所在位置返回結果是FALSE.

=IF(ISNUMBER(--MID(C26,ROW($1:$30),1)),ROW($1:$30)),返回的是數值所在的位置,如下圖,可以看到我們數值的位置是在2/3/4位上的。

怎麼在字符串中提取數值?(二)

第二步、提取數字。

第一步我們找到了數值的位置,接下來就是提取了。在這裡我們用MID函數。

怎麼在字符串中提取數值?(二)

這裡先將查找數值位數的“IF(ISNUMBER(--MID(C26,ROW($1:$30),1)),ROW($1:$30))“複製下來,IF函數返回的結果裡,最小的數值就是我們數字起始的位置,用最大的數減去最小的那個數再加1就是我們需要提取的長度了。

看到示例中的公式很長,可以用自定名稱定義下“IF(ISNUMBER(--MID(C26,ROW($1:$30),1)),ROW($1:$30))“函數,

如定義為“數值位置”,提取的MID函數可以表示為:“MID(C26,min(數值位置),max(數值位置)-min(數值位置)+1),”.最後公式完成要按CTRL+SHIFT+ENTER結束。


分享到:


相關文章: