小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

提取數(shù)字的幾個套路

 路與堅持 2019-09-02

各位表親好,今天我們一起聊聊從字符串中提取數(shù)字的技巧。實際工作中,難免遇上數(shù)字和其它內(nèi)容混在一個單元格中的情況,而我們需要提取其中的數(shù)字內(nèi)容。而根據(jù)數(shù)字和其它內(nèi)容的性質(zhì),我們又分為以下幾種情況分別處理。

一、連續(xù)的數(shù)字和漢字分離。

A1單元格內(nèi)容“696477632歡迎加入初學(xué)者交流群”,我們注意到,部分內(nèi)容為數(shù)字,其余全為漢字,且數(shù)字與漢字之間有明顯的分界線,數(shù)字是連續(xù)的,漢字也是連續(xù)的,沒有像”我1你2他3“這種間隔排列。提取數(shù)字的公式為=--LEFT(A1,2*LEN(A1)-LENB(A1))。LEFT函數(shù):從字符串或者單元格引用的左側(cè)提取指定位數(shù)的字符,比如=LEFT(“我愛中國”,2)表示從“我愛中國”這個字符串的左側(cè)提取2個字符,結(jié)果為“我愛”。LEN和LENB函數(shù)都是返回參數(shù)的長度,不同的是,LEN函數(shù)不檢測全角半角,有幾個字符就返回幾,LENB對于占兩個字節(jié)的漢字和其它全角字符,返回2。比如len(“我”)的結(jié)果為1,而Lenb(“我”)的結(jié)果為2。具體到這個題目中,LEN(A1)結(jié)果為19,再乘2為38,而LENB(A1)結(jié)果為29,二者相減剛好為單字節(jié)內(nèi)容的數(shù)量(數(shù)字的位數(shù))。

Tips:1、LEFT為文本函數(shù),返回的結(jié)果為文本格式,要得到數(shù)值,需要讓它進(jìn)行兩次取負(fù)運(yùn)算。

2、如果數(shù)字在右側(cè),把LEFT函數(shù)改為RIGHT即可。

3、如果是提取漢字,可以使用=RIGHT(A1,LENB(A1)-LEN(A1))。

4、使用公式=LOOKUP(10^10,--LEFT(A1,ROW($1:$10)))也可以得到預(yù)期結(jié)果。10^10表示10的10次方,這里假定數(shù)字不超過10位,文本,如果超過,需要將10^10和row($1:$10)適當(dāng)擴(kuò)大。

二、連續(xù)的數(shù)字在漢字中間

A1單元格內(nèi)容“昨天花458元買了一支鋼筆”。這樣數(shù)字前后都有漢字,應(yīng)該怎么提取數(shù)字內(nèi)容呢?

方法1:找到第1個數(shù)字所在位置,并使用上面提到的2*len(a1)-lenb(a1)的方法得到數(shù)字的位數(shù),之后使用mid函數(shù)來提取。

先來查找第一個字符的位置公式為=MIN(FIND(ROW($1:$10)-1,A1&2/17))。

公式解析:row($1:$10)-1生成0-9的一個數(shù)組,使用find函數(shù)查找0-9各個數(shù)字在A1中的位置,然后使用min函數(shù)取最小值(即最先出現(xiàn)的位置)。但0-9的數(shù)字往往并不都現(xiàn)出在要查找的字符串中,比如這里就沒有0,所以find函數(shù)會返回錯誤值#VALUE,導(dǎo)致min獲取不到正確結(jié)果。所以我們可以在原字符串后連接一個由0-9組成的字符串,以保證find返回正確結(jié)果。而2/17(2除以17)的結(jié)果,恰好包含了0-9的所有數(shù)字。

得到了第一個數(shù)字出現(xiàn)的位置,現(xiàn)在我們就可以使用MID函數(shù)來提取:=MID(A1,MIN(FIND(ROW($1:$10)-1,A1&2/17)),2*LEN(A1)-LENB(A1))。這是一個數(shù)組公式,數(shù)組公式需要按Ctrl+Shift+Enter才能得到正確結(jié)果。

方法2:從第1位開始,依次取1-10位,構(gòu)成二維數(shù)組({'昨','昨天','昨天花','昨天花4','昨天花45','昨天花458','昨天花458元','昨天花458元買','昨天花458元買了','昨天花458元買了一';'天','天花','天花4','天花45','天花458','天花458元','天花458元買','天花458元買了','天花458元買了一','天花458元買了一支';'花','花4','花45','花458','花458元','花458元買','花458元買了','花458元買了一'…}),然后找出這個數(shù)組中最大的數(shù)。公式為=MAX(IFERROR(--MID(A1,ROW($1:$30),COLUMN($A:$J)),1=2))。這也是一個數(shù)組函數(shù)。

TIP:因為數(shù)組中多數(shù)為非數(shù)字內(nèi)容做取負(fù)運(yùn)算會得到錯誤值,所以加一層容錯函數(shù)IFERROR,將錯誤值替換為FALSE(因為1=2的返回值為FALSE)。這樣MAX函數(shù)就可以順利取到最大值了。

提取方法不僅限于以上幾種,篇幅限制,今天就舉這幾個例子。今天涉及到多個函數(shù)嵌套,需要大家慢慢理解并學(xué)習(xí)其中的思路,隨著學(xué)習(xí)的深入,你會發(fā)現(xiàn)思路比掌握函數(shù)本身更加重要。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多