python提取字符串中数字_EXCEL数字在字符串中间怎么提取?
昨天我們講了字符串中數(shù)字在前面或在后面時(shí)的提取辦法,今天我們來看下若是數(shù)字在中間該怎么辦?在解決問題之前我們先學(xué)習(xí)下會(huì)用到的另外兩個(gè)函數(shù),ISNUMBER,MATCH。
1、ISNUMBER
ISNUMBER(value),檢測(cè)一個(gè)值是否為數(shù)字,是就返回TRUE,否則返回FALSE。
如下圖:
如果是嵌套使用時(shí)檢測(cè)一個(gè)數(shù)組區(qū)域中是否有數(shù)字,結(jié)果將以數(shù)組的形式輸出被引用。
2、MATCH
MATCH(lookup_value, lookup_array, [match_type])
返回該項(xiàng)在此區(qū)域中的相對(duì)位置,匹配方式分為1,0,-1,分別對(duì)應(yīng)下列情況:
1或者是省略,MATCH 查找小于或等于 lookup_value 的最大值;
0,MATCH 查找完全等于 lookup_value 的第一個(gè)值;
-1,MATCH 查找大于或等于 lookup_value 的最小值。lookup_array 參數(shù)中的值必須按降序排列,例如:TRUE, FALSE, Z-A, ...2, 1, 0, -1, -2, ... 等等。
實(shí)例如下圖:
3、數(shù)字提取
學(xué)習(xí)了上面的函數(shù)后,我們來解決下今天的問題。如下圖,提取數(shù)字。
我們先以不含小數(shù)點(diǎn)的數(shù)字提取為例。
思路:從字符串中間開始提取字符用MID函數(shù),所以我們只需確定從第幾位開始提取,一共提取幾位字符,只要確定了這兩個(gè)參數(shù),問題就迎刃而解了。
從第幾位開始提取?昨天剛學(xué)習(xí)了lookup,他能找到字符串中最后一個(gè)數(shù)字出現(xiàn)的位置,所以在B1中輸入:
=lookup(1,-mid(A1,ROW($1:$10),1),ROW($1:$10))
把A1中的字符串拆解成{"你";"好";"4";"5";"m";"g";"";"";"";""},由于拆解出來的數(shù)字被當(dāng)作了文本,前面加個(gè)負(fù)號(hào)就變成了{(lán)"你";"好";-4;-5;"m";"g";"";"";"";""},然后用lookup以1為查找值就會(huì)查找到-5,返回對(duì)應(yīng)的行號(hào)即4,意思是字符串中最后一個(gè)數(shù)字在第四位。
用count對(duì)字符串中的數(shù)字進(jìn)行計(jì)數(shù)
=COUNT(-MID(A1,ROW($1:$10),1)),返回2,代表字符串中有兩個(gè)數(shù)字。
最后用mid函數(shù)
=mid(A1,4-2+1,2)即可得到想要的結(jié)果,中間參數(shù)的意思是最后一個(gè)數(shù)字的位置減去數(shù)字位數(shù),然后加1,即得到了開始提取的位數(shù),比如A1中,最后一個(gè)數(shù)字在第四位,有兩位數(shù)字,所以從4-2+1=3位開始提取。
公式整合到一起即:
=MID(A1,(LOOKUP(1,-MID(A1,ROW($1:$10),1),ROW($1:$10))-COUNT(-MID(A1,ROW($1:$10),1))+1),COUNT(-MID(A1,ROW($1:$10),1)))
三鍵結(jié)束。
那找出從第幾位開始提取還有沒有好的辦法呢?
我們用今天學(xué)的函數(shù)來思考下,
用ISNUMBER來判斷A1中是否有數(shù)字
=ISNUMBER(-MID(A1,ROW($1:$10),1))返回
{FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}
用MATCH來找到第一個(gè)TRUE的位置,即找到了第一位數(shù)字的位置
=MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$10),1)),0)
用COUNT計(jì)算出數(shù)字位數(shù)。
整合在一起即:
=MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$10),1)),0),COUNT(1*MID(A1,ROW($1:$10),1)))
三鍵結(jié)束
這個(gè)公式比上面的公式精煉點(diǎn)吧,但是其實(shí)本質(zhì)是一樣,都是用MID函數(shù)實(shí)現(xiàn)提取。
那對(duì)于數(shù)字中有小數(shù)的該怎么提取呢?
這個(gè)就不多介紹了,只需要用IF 做個(gè)判斷,用上面的方法就可以了。
當(dāng)然如果你用的是16版的excel,那么只需要CTRL+E瞬間就可以實(shí)現(xiàn)了。
轉(zhuǎn)自:米宏Office
總結(jié)
以上是生活随笔為你收集整理的python提取字符串中数字_EXCEL数字在字符串中间怎么提取?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql必须安装在c盘吗_家用冷热水管
- 下一篇: h5文字垂直居中_CSS实现居中的几种方