使用函數(shù)輕松將文本中的數(shù)字提取出來

轉轉大師PDF轉換器

支持40多種格式轉換,高效辦公

如何將文本中的數(shù)字提取出來呢?一個一個的復制粘貼太麻煩也不太顯示,如果文本多的話,今天小編就來給大家分享一個使用函數(shù)輕松將文本中的數(shù)字提取出來的方法。
基本思路和使用函數(shù)說明

要提取上圖A2單元格文本中的數(shù)字,如果能確定第一個數(shù)字出現(xiàn)的位置,然后確定數(shù)字的個數(shù),就可以用MID函數(shù)提取出來了。

本例解決方案用到的函數(shù)及目的主要如下:

1)MID和MIDB函數(shù),從第一個數(shù)字出現(xiàn)位置起取數(shù)字個數(shù)那么多位,以達到把數(shù)字提取出來的目的;

2)SEARCHB函數(shù),可以使用通配符查到第一個數(shù)字出現(xiàn)的位置;

3)FIND函數(shù),可以查找到第一個數(shù)字出現(xiàn)的位置;

4)COUNT函數(shù),“數(shù)”出文本中數(shù)字的個數(shù);

5)MAX和MIN函數(shù),提取相關數(shù)字。

2

查找第一個數(shù)字出現(xiàn)的位置

第一種方法:SEARCHB函數(shù),函數(shù)基本用法如下(第三參數(shù)忽略):

=SEARCHB(待查找的文本,包含待查找文本的目標文本)

SEARCHB函數(shù)用途是在第二參數(shù)中查找第一參數(shù)出現(xiàn)的位置,查找是按字節(jié)的,一個漢字占兩個字節(jié),普通數(shù)字和英文占一個字節(jié)。

并且,SEARCHB函數(shù)可以使用通配符,比如“?”就代替一個單字節(jié)字符。

如下圖,在B2輸入:

=SEARCHB("?",A2)

結果返回7,也就是第一個單字節(jié)字符(也就是第一個數(shù)字4)出現(xiàn)的位置是7,因為前面有“七連第”3個漢字,占6個字節(jié),所以“4”是第7個字節(jié)。

第二種方法:FIND函數(shù),函數(shù)基本用法如下(第三參數(shù)忽略):

=FIND(待查找的文本,包含待查找文本的目標文本)

和SEARCHB函數(shù)類似,F(xiàn)IND函數(shù)查找第一參數(shù)在第二參數(shù)中出現(xiàn)的位置。例如:

=FIND("中","我是國人")=3,因為第一參數(shù)“中”在第二參數(shù)“我是中國人”里是第3個字符。

我們在B2輸入函數(shù)并按Ctrl+Shift+Enter運行:

=MIN(FIND(ROW(1:10)-1,A2&1/17))

結果返回4,也就是說A2文本中第一個數(shù)字出現(xiàn)的位置是4。

下面來簡單解釋一下函數(shù)的用法:

ROW(1:10)返回{1;2;3;4;5;6;7;8;9;10}這樣一個數(shù)組,由于我們要查找的是單個數(shù)字,所以需要再減去1,也就是:ROW(1:10)-1。ROW(1:10)-1返回{0;1;2;3;4;5;6;7;8;9},也即0~9的10個數(shù)字。

FIND(ROW(1:10)-1,A2),也就是FIND({0;1;2;3;4;5;6;7;8;9},A2)可以查找0~9在A2文本中分別出現(xiàn)的位置。

但是如果A2文本中沒有某個數(shù)字,比如說沒有7,F(xiàn)IND部分就會返回錯誤值。

為了避免這個問題,我們在A2文本后加上"0123456789",也就是A2&"0123456789",這樣,F(xiàn)IND函數(shù)不會返回錯誤值,因為即使A2文本中沒有某個數(shù)字,也能在A2&"0123456789"中查到。

上面的函數(shù)中實際輸入的是A2&1/17,為什么這樣呢,因為1/17=0.0588235294117647,這個小數(shù)中包含0~9的所有數(shù)字。

5^19也有相同作用。

FIND(ROW(1:10)-1,A2&1/17)返回:{9;21;15;16;4;5;24;23;13;6},也即0~9這10個數(shù)字分別在A2&1/17這個文本中出現(xiàn)的位置,我們?nèi)∽钚≈稻褪堑?個數(shù)字出現(xiàn)的位置即可,因此外層嵌套MIN函數(shù)。即:

=MIN(FIND(ROW(1:10)-1,A2&1/17))

判斷A2文本中數(shù)字的個數(shù)

第一種方法:COUNT函數(shù)。COUNT函數(shù)返回結果為其參數(shù)中的數(shù)字個數(shù)。

因此,我們輸入:

=COUNT(-MID(A2,ROW(1:99),1))

其中MID(A2,ROW(1:99),1)部分的意義是:

從A2文本中第1個,第2個……第99個字符開始,分別取1個字符,也就是將A2單元格按單個字符拆分,返回:

={"七";"連";"第";"4";"5";"9";"個";"兵";……;""}

我們加上一個減號,就將文本數(shù)字轉化成數(shù)值,文本轉化成錯誤值,

-MID(A2,ROW(1:99),1)返回:

{#VALUE!;#VALUE!;#VALUE!;-4;-5;-9;#VALUE!;……;#VALUE!}

然后用COUNT({#VALUE!;#VALUE!;#VALUE!;-4;-5;-9;#VALUE!;……;#VALUE!} )數(shù)出一共有3個數(shù)字,也就是A2文本中數(shù)字的個數(shù)。

第二種方法:LEN和LENB函數(shù)方法。

LEN和LENB函數(shù)都返回參數(shù)字符長度,但是LENB按單字節(jié)個數(shù)計,LEN不區(qū)分。

例如:

=LEN("中國1汽")=4

=LENB("中國1汽")=7

我們輸入下面公式獲得A2單元格文本中數(shù)字個數(shù):

=2*LEN(A2)-LENB(A2)

原理:假設A2文本中的數(shù)字都是雙字節(jié),那么2*LEN(A2)=LENB(A2),但是數(shù)字實際上是單字節(jié)的,那么2*LEN(A2)比LENB(A2)大幾就是有幾個單字節(jié)的字符(本例中就是數(shù)字)。

4

組合上述函數(shù),提取數(shù)字

根據(jù)最初的思路分析,將上面的數(shù)字出現(xiàn)位置和數(shù)字個數(shù)函數(shù)組合一下,就得到:

=MIDB(A2,SEARCHB("?",A2),2*LEN(A2)-LENB(A2))

=MID(A2,MIN(FIND(ROW(1:10)-1,A2&1/17)),2*LEN(A2)-LENB(A2))

=MID(A2,MIN(FIND(ROW(1:10)-1,A2&1/17)),COUNT(-MID(A2,ROW(1:99),1)))

=MIDB(A2,SEARCHB("?",A2),COUNT(-MID(A2,ROW(1:99),1)))

5

補充一個方法

單純就本例數(shù)據(jù)而言,輸入下面公式,然后按Ctrl+Shift+Enter也可以返回正確結果:

=MAX(IFERROR(--MID(A2,ROW(1:99),COLUMN(A:Z)),))

以上就是今天給大家分享的關于如何使用函數(shù)輕松將文本中的數(shù)字提取出來的操作方法,有需要的小伙伴們可以根據(jù)以上步驟進行操作,如果需要pdf轉txt可以使用w大師pdf轉換器。

主站蜘蛛池模板: 一本大道香蕉久在线不卡视频 | 天天天天躁天天爱天天碰2018| 在线日韩理论午夜中文电影| 国产成人午夜精华液| 免费夜色污私人影院在线观看| 中国高清色视频www| 亚洲香蕉在线观看| 精品国产一区二区三区av片| 欧美午夜伦理片| 小蝌蚪视频网站| 国产在线视精品麻豆| 亚洲热线99精品视频| 久久97久久97精品免视看| 99久久精品免费看国产| 污片在线观看网站| 无码人妻熟妇av又粗又大| 国产精品特黄一级国产大片| 内射白浆一区二区在线观看| 亚洲AV无码国产一区二区三区 | 午夜影院app| 么公的又大又深又硬想要小雪| 97久久免费视频| 精品久久久久久国产潘金莲| 好硬好湿好爽再深一点视频| 国产AV无码专区亚洲精品| 五月综合色婷婷在线观看| 高h视频免费观看| 欧美国产日韩A在线观看| 国产欧美在线一区二区三区| 久久国产精品最新一区| 俄罗斯乱理伦片在线观看| 狠狠色综合网站久久久久久久| 我与白丝同桌的故事h文| 国产在线观看一区二区三区四区 | 国产精品天天干| 亚洲爱情岛论坛| 日批视频在线看| 欧美日韩乱国产| 国产成人麻豆tv在线观看| 亚洲另类欧美日韩| 99re免费在线视频|