excel數據提取技巧:從混合文本中提取數字的萬能公式

2020-12-27 部落窩教育H

編按:哈嘍,大家好!有沒有能把任何文本中包含的所有數字都提取出來的公式?當然是有的,今天就給大家帶來提取數字的萬能公式,不管數字在文本中的位置是否有規律,不管文本中數字有多少,它都能把數字提取出來。趕緊來看看吧!學習更多技巧,請收藏關注部落窩教育excel圖文教程。

在上一篇文章中,小花講解了通過觀察混合文本特徵,設置特定公式,完成數據提取的三種情景。於是,有些小花瓣悄悄跟小花說:小花老師,我笨,看不出數據特徵,我又懶,不想分情景設置不同公式,有沒有那種霸王級萬能公式,啥混合文本咱都可以硬上弓?

答案自然是,有的!不過,還是要區分兩種情況。一種是提取數值,有正負之分大小之別,也有小數點;另一種是提取數字字符串,如電話號碼、身份證號碼等,這裡的數字沒有小數和負號,也沒大小之分。

這兩種情景的萬能公式分別該怎麼寫,又該怎麼理解呢?且聽小花細細道來。

四、提取數值的萬能公式

情景特徵:除了目標數值,文本中不存在其他數字,否則容易產生幹擾。

萬能公式:

{=-LOOKUP(9^9,-MIDB(A2,MIN(FINDB(LEFT(ROW($1:$11)-2,1),A2&-1/19)),ROW($1:$100)))}

公式詳細拆解如下:

①LEFT(ROW(1:11)-2,1)

ROW(1:11)很好理解,返回第1行到第11行的行號,也就是11個字符組成的集合A{1,2,3…11},-2則變為字符集B{-1,0,1,2…9}。再通過LEFT提取字符集B左側的第一個字符,生成字符集C{"-",0,1,2,…9},也就是符號和0-9這十個字符,所有數值,均由這11個字符構成。

綜上,該部分的功能就是構建阿拉伯數字全部字符,這些數字有助於我們鎖定位置,進而提取阿拉伯數值。

②FINDB(①,A2&-1/19)

FINDB是查找字符所在目標文本中的位置,它與FIND的差異是,它返回字節序號,即把漢字和中文符號視為2個字節。由此可知,A2單元格混合文本中,負號「-」出現的位置是5,而不是3。

該公式中使用了A2&-1/19是為了確保字符集C{"-",0,1,2,…9}的每一個字符均在FIND的查找文本中出現,確保FIND的返回值不存在錯誤值。片段②返回字符集C{"-",0,1,2,…9}在A2&-1/19出現的位置,即序數集D{5,13,10,6,…}

③MIN(②)

MIN(②)取②的結果序數集D{5,13,10,6,…}中的最小值,它就是目標數值在A2中的起始位置,即A2混合文本中,首次出現負號或阿拉伯數字的位置,即是目標提取數值的起始位置。這就是為什麼要求目標數字的左側,不能有無關的阿拉伯數字或負號的原因。

④-MIDB(A2,③,ROW($1:$100))

這裡使用MIDB,而不是MID,是為了對應FINDB,通過字節位置截取部分文本。ROW($1:$100)返回有序數組{1-100},作為MIDB函數的第三個參數——要提取的字節數,即分別提取1-100個字符。學習更多技巧,請收藏關注部落窩教育excel圖文教程。

於是,MIDB函數的功能就是從③確定的起始位置開始,分別從A2單元格文本中截取長度為1-100個字節的100個不等長字符串E{"-","-2","-29","-299",…"-299.19"}。而-MIDB則是將不等長字符串執行減法運算,使得非數值數據因無法運算而報錯為#VALUE!,進而將不等長字符串E轉化為純數字和錯誤值#VALUE!組成的新常量數組F{#VALUE!;2;29;299;299;299.1;299.19;…;299.19}

⑤-LOOKUP(9^9,④)

LOOKUP查詢有三個特性:

1.默認查詢區域是升序的,即越往後值越大。

2.返回值應小於且最接近於查詢值。

3.忽略查詢區域中的錯誤值。

由此,我們賦予查詢值一個極大數9^9,因為LOOKUP的特性1,所以查詢區域的最後一個非錯誤值為最大值,即該值為返回值。LOOKUP的這幾個特性,完美地做到了忽略錯誤值取最後一個有效值!

五、提取字符的萬能公式

用法:依次提取目標單元格的全部數值並合併。

萬能公式:

{=SUM(MID(0&A2,LARGE(ISNUMBER(--MID(A2,ROW($1:$100),1))*ROW($1:$100),ROW($1:$100))+1,1)*10^ROW($1:$100)/10)}

公式簡要拆解如下:

① ISNUMBER(--MID(A2,ROW($1:$100),1))*ROW($1:$100)

通過MID(A2,ROW($1:$100),1)逐一提取每一個字符,使用雙負號運算,區分數字和其它字符,再使用ISNUMBER函數判斷每一個字符是否為數字,返回一組邏輯值,最後*ROW($1:$100)使得數字返回其在A2混合文本中的位置,其他字符返回0。

② LARGE(①,ROW($1:$100))

通過LARGE函數,將①中的字符位置值集合從大到小重新排序。由於數字在文本中的位置總是大於0,且數字越靠後,位置值越靠前。而其他字符總是小於0的。這裡的重點是將所有的0值置後,同時將所有數字位置值倒排。

③ MID(0&A2,②+1,1)

MID根據②的位置值+1從0&A2中逐一取數。由於非數字的位置值為0,所有非數字返回值均取首位0,其餘數字不受影響。由於②的數字位置值是顛倒的,所以,此時提取出的數字前後也是顛倒的。

④ SUM(③*10^ROW($1:$100)/10))

前三步得到了A2單元格中的所有數字和一串代表非數字位置的0組成的有序數組,此時要完成最終的提取,還需要將數字正序排列、去除0值並將其合併。這些通通交由*10^ROW($1:$100)/10完成,它通過構建一個多位數來將各個數字順序擺放,最終將代表文本的有效數位前的0值省略,其餘數字按次序從個位開始向左排列。最終的多位數即數字提取結果。

其實,提取數字字符串的問題,19年以後版本有了一個很簡單又不燒腦的解決方案––通過CONCAT直接連接就行了。

19版萬能公式如下:

{=CONCAT(IFERROR(--MID($A2,ROW($1:$100),1),""))}

公式簡要說明:

1.使用MID和ROW組合,將每一個字符逐一提取出來。

2.通過雙負號區分數字和非數字,非數字將報錯。

3.IFERROR將非數字錯誤值轉化為空。

4.使用CONCAT函數將所有數字合併。

以上,分享結束。學習更多技巧,請收藏關注部落窩教育excel圖文教程。

****部落窩教育-excel數字提取萬能公式****

原創:小花/部落窩教育(未經同意,請勿轉載)

更多教程:部落窩教育

相關焦點

  • Excel數字提取技巧:從混合文本中提取數字的方法
    前面我們分享了不用函數公式提取數字的5種方法。今天我們分享用簡單公式從混合文本中提取數字的方法。因為採用的公式很簡單,所以總體來說只適合數字在文本中的位置有一定規律的情況。如果想用公式提取沒有位置規律的數字,那就得看我們下一篇教程。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
  • 從混合文本中提取數字的5個簡單公式,比Excel技巧快捷方便
    大家好,前面的教程中小編分享了5種提取數字的方法,沒用函數公式,全部是用Excel技巧完成提取,適合初學者和函數不熟悉的。對於熟悉函數的小夥伴們,還是偏向於公式來提取數字,畢竟有些混合文本用函數公式提取比技巧要方便快捷,只要解決如何設置公式,再多的單元格複製公式就可以了情況一:數字固定長度、都在文本的右邊象上圖表格中數字都在右邊,而且手機號我們都知道是
  • 提取Excel單元格中的英文、漢字、數字,用Power Query輕鬆解決!
    日常工作中都會遇到一些不規範的數據,對於數據的提取是個頭疼的事情,今天教大家用Power Query快速提取你想要的內容,超簡單,又實用的技巧。1、提取英文在只有中英文混合的自字符串中我們可以這樣提取英文。A 定位表格位置,點擊數據-獲取和轉換-從表格,這時候數據自動加載到Power Query編輯器中。
  • 雜亂文本提取,帶關鍵字,用find函數輕鬆搞定
    很多時候,數據並不是拿到就可以使用的,需要我們對數據預處理,如果我們需要提取字符串中的文本,舉下面這個例子我們需要的文本串所處的位置是不固定的,有的在前面,有的在中間,有的在末尾我們需要把帶T編號提取出來。
  • Excel怎麼設置只提取指定行中的數據?
    Excel怎麼設置只提取指定行中的數據?有些時候我們需要從一個excel文件中的資料庫中提取指定的行或列中的數據。例如如圖示,是國內所有上市公司的行業統計。但是現在我們只需要其中部分上市公司的行業統計,我們怎麼辦呢,下面分享一個技巧,需要的朋友可以參考下有些時候我們需要從一個excel文件中的資料庫中提取指定的行或列中的數據。例如如圖示,是國內所有上市公司的行業統計。但是現在我們只需要其中部分上市公司的行業統計,我們怎麼辦呢,是一個個查找,然後複製嗎,當然不是。
  • 職場必備Excel高頻函數,TEXT的萬能用法
    一、TEXT簡介TEXT函數是使用頻率非常高的文本函數之一,TEXT函數可通過格式代碼來更改數字的顯示方式。二、函數語法TEXT(value,format_text)三、函數參數Value 為數值、計算結果為數字值的公式或對包含數字值的單元格的引用。format_text 為格式化字符串。
  • Excel教程:輕鬆提取漢字和數字
    通知:安卓APP以發布課程可以緩存下載和倍速看IOS系統(內測中,請公眾號學習)操作步驟:一、單擊【1】選中數據——【2】數據——【3】從表格——【4】勾選標題行——【5】確定,如圖三、提取數字,【1】添加列,【2】自定義列,【3】輸入公式:Number.From(Text.Remove([採購信息],{"一".."
  • Excel文字與數字分離技巧
    大家好,上節課我們分享了如何利用Word技巧列印Excel中的數據技巧,今天我們一起來看下這樣一個話題,《Excel文字與數字分離技巧》,我們看下面的示例:上面這個表是員工在合併數據的時候,不小心沒有設置分割符,錯將數字和文字錄到一起了,導致後結業的數據處理工作不好進行,現在要求將數字和文字進行分離
  • Excel | CELL函數提取工作表名稱
    但,有朋友問韓老師,如果不做成目錄的形式,而是只提取工作表的名稱,有什麼方法?韓老師今天就講一個提取工作表名稱的函數——CELL。如果想提取的工作表名稱帶有完整的路徑與所在工作簿,可以用公式:=CELL("filename")如果只想保留工作表名稱,去掉路徑、所在工作簿等信息,可以用公式:=RIGHT(CELL("FILENAME"),LEN(CELL("FILENAME"))-FIND("]",CELL("FILENAME")))如下圖:
  • 使用信息函數快速分辨excel中的文本數據與數字數據
    我們在實際工作中,當我們手工錄入excel數據的時候,有些人會粗心大意,容易將鍵盤中的英文字母當然數字錄入到excel表格中,比如我們需要輸入金額2020元,結果由於粗心將數據錄入成202o元,當我們對這樣的數據進行計算的時候,就會出現錯誤,當我們需要檢查大量這樣的數據的時候,我們可能就會使用到功能強大的函數
  • Excel如何快速拆分文字和數字?分享一些Excel常用的操作技巧
    講真我覺得Excel還是很牛逼的,強大的數據處理功能,相比較ppt和word來說,應用範圍更廣。話不多說,今天就跟大家分享一下Excel中常用的8個實用小技巧,職場必備技能,不能錯過哦!一、快速拆分文本和數值如下表格可以看出,個人信息中姓名和聯繫方式是在同一個單元格,那麼如何將其快速拆分出來呢?
  • Excel如何批量提取全部工作表名稱公式
    在使用公式查詢或匯總多工作表數據時經常需要用到整個工作簿所有工作表的名稱,下面介紹如何用宏表函數GET.WORKBOOK來提取工作表名稱。 提取工作表名稱過程:  Ctrl+F3調出定義名稱對話框,或者點擊【公式】-【定義名稱】調出定義名稱對話框
  • 提取PDF文本信息:入門
    課程通過案例教學模式,旨在幫助大家在短期內掌握Stata的基本命令、編程、數據處理以及結果輸出等技術,並針對最新版Stata中的實用新功能做出詳細介紹,包括框架功能(frame:讀入多個數據集)等等。同時,此次雲端課程提供錄播,提供線上答疑。
  • Excel公式中8個常見的錯誤值,了解它們,你的公式水平更上一層樓
    Hello,大家好,在使用excel公式的時候,相信很多人都會遇到錯誤值,當我們不明白錯誤值為什麼出現的時候,很多人都會選擇重新將公式寫一遍,如果我們能清楚錯誤值出現的原因,就能快速定位到公式錯誤的位置然後改正,了解錯誤值出現的原因是我們提高excel公式水平必須掌握的知識點,今天跟大家分享8個excel中常見錯誤值出現的原因
  • 文本提取一秒搞定 華為OCR技術到底厲害在哪?
    華為手機上的文本提取功能可以快速提取屏幕上的文字,且支持電話號碼、郵件、網站一步跳轉,助力高效辦公。OWG中文科技資訊  智慧視覺神操作,分分鐘搞定文本提取OWG中文科技資訊  那麼,這麼好用的文本提取功能到底怎麼用?
  • 這才是Excel函數中的神器,名副其實的萬金油公式!
    函數中的神器,名副其實的萬金油公式!中有一個幾乎「萬能」的函數組合,在N多種問題的解決過程中都少不了她的身影,她就是Index+small+if組合!$A$2,,,COUNTA(數據源!$A$2,,,COUNTA(數據源!
  • 關於Excel中身份證號碼的8個技巧,你知道哪些?
    解決了身份證輸入的問題,有時我們可能還要提取身份證中的出生年月、性別和年齡等等,然後再將提取的信息進行轉化。當然在提取和信息轉化之前,我們必須要了解下身份證號碼的結構及含義,見下圖:17位開始截取1位,即在D2單元格中輸入公式:=MID(C2,17,1)出生日期是從C2單元格中的第7位開始截取8位,在E2單元格中輸入公式:=MID(C2,7,8)輸入好公式後,下拉填充公式即可。
  • Excel應用實戰——如何實現智能提取並進行判斷匹配的函數組合
    本文將用到:MID(數據,取數第1位,取幾位)FIND/SEARCH(目標值,查找文本)MATCH(目標值,查詢區域,精準/模糊)VLOOKUP(目標值,查詢區域查詢區域列號,精準/模糊)ISERROR() 結果為TRUE/FALSEIF(條件,滿足條件結果,不滿足條件結果)一位來自廣西的網友,據推測是個小哥,他想通過1、2兩列進行對比,若1列能在2列中找到一樣的城市
  • 從雜亂無章的表格中找出關鍵字,批量提取字符
    粉絲問:如何從文本雜亂無章的表格中,批量提取字符?小編答:先找出規律,再確定提取的方法粉絲:沒有規律,每個單元格字符不一樣多,提取的字符位置也不同小編:截圖或或者把文件發給我經小編去除隱私信息後的截圖如下:
  • WPS2019辦公技巧——WPS表格自動提取身份證號碼中的出生日期
    WPS2019辦公技巧——WPS表格自動提取身份證號碼中的出生日期在每年9月開學時,都要給新生登記註冊,需要登記許多信息,比如:姓名、性別、出生日期、身份證號碼、家庭住址、聯繫電話……等等,好了,閒話少說,下面給大家分享一下WPS表格中如何根據身份證號碼自動提取出生日期。如下圖所示,表中已經輸入了身份證號碼,出生日期還空著。我們就要讓表格自動給我們生成出生日期。在EXCEL中就要寫函數公式了,WPS也可以用函數公式來完成。這裡不講這個。給大家分享的是WPS給我們提供的簡單方法。