Excel VBA之函數篇-3.21簡易數字提取法 批量提取就靠它

2021-01-09 Excel和VBA

前景提要

在日常工作中,我們經常會碰到這樣的操作,一個單元格中有數字有文字等,我們需要的僅僅是其中的數據,我們需要將這些數據提取出來,然後做其他的統計或者分析,如果數據小,可以手工,但是數據量大的情況下,手工就不現實了,那麼有什麼好辦法嗎?

其實VBA作為Excel自帶的簡易程式語言,這個要求完全不在話下,今天我們就來學習一個簡易的數據提取法,為什麼說是比較簡單的分離呢?因為我們現在還處在函數篇,所有的運用都是依賴於函數進行的,所以我們還是儘量使用函數來完成,雖然這樣能夠實現的功能比較的局限,但是大家能夠更加清楚了解的到每個函數的意義和使用場景,這對於大家今後再面對更加複雜的結構的時候,才能夠得心應手。

函數說明

今天要說的這個函數是val函數,三個字母非常的簡單,也代表了他的運用場景比較的簡單,並不適合用來處理特別複雜的數據結構,他主要適應於處理數字+文字,數字+英文,這樣的組合的形式,只有一個要求,就是必須是數字在前的,其他的中文或者是英文字符都必須在後面的,這樣他才能夠將數字提取出來,我們來看看代碼

場景說明

這裡依然假設是我們各個不同的網絡商城的訂單號,從下圖中我們可以看出來,每個訂單號的結構各不相同(我編的),我們現在希望將其中的數字提取出來,作為我們登記明細的唯一標註,那麼我們要如何實現呢?

代碼區

Sub test()

Dim i%

For i = 2 To 8

Cells(i, 7).Offset(0, 1) = Val(Cells(i, 7))

Next i

End Sub

來看看效果

有些成功的提取出了數字,但是有些並沒有成功提取出來,為什麼會這樣呢?別急,聽我下面慢慢講解。

代碼解析

為什麼上面會出現一些完全不同的結果呢?我們來一個個的分析下

前面我們已經說過,val的使用場景是數字在前,中文或者英文是在後面的,val能夠提取出來的就是中文或者英文前面的這些數字

我們來看看例子,第二行66哈哈,數字+中文的組合,val應該能夠將漢字前面的數字,即66提取出來,後面的結果也正好是這樣的,再來看看第3個例子,66aa,數字+英文的組合,也正好能夠提取出英文前面的數字

在看看其他的一些反常的情況,66aa66,數字+英文+數字的組合,val能提取出來哪部分呢?很明顯,它只能夠提取出來前面的一部分,即66,無法提取出來後面的一部分,我們用下面一行的例子來驗證,val提去出來了G前面的667這三個數字,但是他沒有辦法提取出G後面的7

而最後的一個例子和最開始的一個例子,結構並不是數字開頭的,所以val並不適用於這樣的場景,自然提取出來的結果都是0.

綜合上面的幾個不同的例子,大家是否能夠理解val函數的使用場景和範圍嗎?

相關焦點

  • excel函數公式大全之利用LARGE函數和SUM函數提取前五名銷售額
    excel函數公式大全之利用LARGE函數和SUM函數提取前五名銷售額,excel函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數LARGE函數和SUM函數。
  • EXCEL函數公式大全之利用FIND函數MID函數提取字符串中間指定文本
    EXCEL函數公式大全之利用FIND函數和MID函數組合提取字符串中間指定文本。EXCEL函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數FIND函數和MID函數。
  • Excel利用MID函數提取出生年月日
    小編今天要為大家分享的是如何利用MID函數來提取身份證號上的出生年月日如下圖所示,是員工的身份證號碼通過MID函數,我們可以看到結果已經計算出來了。接下來小編就為大家分析MID函數=MID(b2,7,8),其中b2是你所需要求的數據文本,7表示身份證號的第七位開始,8表示的是我們要提取8位數,也就是說我們需要從第七位數開始,提取8位數字。
  • excel技巧-使用left\right\mid函數提取欄位中某些文字符號的方法
    日常工作中,經常會遇到需要對某些單元格中的內容進行部分的欄位提取,這時候就可以用到left函數、right函數和mid函數了,這幾個函數的公式如下:=left(text,【num_chars】);=right(text,【num_chars】);=mid
  • excel查找函數應用:如何提取姓名的拼音首字母
    如果此刻讓你快速提取漢字拼音的首字母,你會怎麼做呢?相信大多數小夥伴面對這個問題時,都會蒙圈,可能會想「這應該得用VBA解決吧,函數應該不行吧。」其實呀,這個問題用大家都會的VLOOKUP函數就能搞定,趕緊來看看吧!在某些特殊的情況下,我們可能需要用到拼音首字母。
  • 掌握這7條excel函數,自動化生成數據周報上篇
    excel的二八原則曾經在面試時候被問到VLOOKUP和HLOOKUP有什麼區別,我回答的是前者是以列匹配,後者是以行匹配。面試完我一個勁兒後悔沒有回答好,對這個函數不熟悉,回答太簡單。諷刺的是已經過去好幾年,我卻一次未用到過HLOOKUP。所以真的沒必要抱著一本excel大全在那挨個學函數,浪費時間。
  • 如何快速將阿拉伯數字轉化為中文數字?excel表格輕鬆搞定!
    在工作中,有時候會遇到把阿拉伯數字轉轉換為中文簡體,中文繁體,如果數據很多,而且一時找不到轉換的軟體,試試電腦上的excel吧,一個函數即可搞定。方法一:單元格格式。如下圖所示,按ctrl+1打開設置單元格格式對話框,選擇特殊中的中文小寫數字和中文大寫數字即可把阿拉伯數字轉化為中文簡體字符和中文繁體字符。但是請注意編輯欄,轉化完之後單元格裡的內容實質還是阿拉伯數字,只是顯示效果為中文小寫或者大寫。這種轉換結果是不能把轉換後的文字複製到word表格、微信聊天窗口等。如果想要把單元格裡的「實質」內容也變成中文大小寫,就需要用到函數了。方法二:函數法。
  • 用excel製作文件管理器,所有版本皆可使用
    Hello,大家好,之前跟大家分享了使用excel中的power query功能製作一個文件管理器,但是很多分析反應自己的excel版本不夠高,無法使用,今天就跟大家分享如何使用宏表函數製作文件管理器,他也是可以實現文件刷新的,這個的操作也不難,下面就讓我們來看下他是如何設置的一、什麼是宏表函數以及FILES函數宏表函數是早期低版本excel的產物
  • ABAQUS:Python後處理—用excel提取位移、體積、應變等變化(一)
    在利用Python生成excel數據之前,先採用一個getInputs函數(代碼如下)生成圖2所示的對話框與用戶進行交互,需要用戶在在其中輸入模型的名字(model name),部件例子的名字(instance name)以及後處理odb的名字(odbname)。這樣做有個好處,每次都可以根據不同模型、不同部件實例和相應的後處理odb名字進行相應結果提取。
  • Excel怎麼用公式把中英文單位前的數字提取出來
    筆者之前曾發文介紹過在Excel中怎麼用Ctrl+E鍵(也就是Excel的快速填充功能)提取數字,把單元格中的數字和中文單位分開。但較早版本的Excel沒有自動填充功能,不能使用Ctrl+E鍵提取數字。
  • 15個excel常用函數,可直接套用,幾乎每天都用得到,收藏備用吧
    身份證號碼提取出生日期公式:=--TEXT(MID(B3,7,8),"0000-00-00")在這裡我們使用mid函數提取身份中號碼中的出生日期,然後使用text函數設置數字的格式,因為text是一個文本函數,所以它輸出的結果是一個文本,我們在公式的最前面輸入兩個減號,將文本格式的數值轉換為常規格式的設置
  • Excel如何批量提取全部工作表名稱公式
    在使用公式查詢或匯總多工作表數據時經常需要用到整個工作簿所有工作表的名稱,下面介紹如何用宏表函數GET.WORKBOOK來提取工作表名稱。 提取工作表名稱過程:  Ctrl+F3調出定義名稱對話框,或者點擊【公式】-【定義名稱】調出定義名稱對話框
  • Excel VBA之函數篇-3.5時間錄入無煩惱
    前景提要 之前我們分享了一個人能夠實現簡單錄入的choose函數,其他它本身是一個選擇函數,不過我們靈活掌握了它的功能和用處之後,將他轉換在實際的工作中,實現了一個簡單的數據快速錄入的功能,也算是一個活學活用的例子吧(請允許我自誇下),今天我們繼續分享一個可以提高數據錄入效率的函數,日期函數
  • Excel怎麼快速提取混合單元格中的中文、英文、數字?
    Microsoft Excel快速提取混合單元格中的中文、英文、數字,雖然這個Microsoft Excel技巧聽起來很「高大上」,但是在實際辦公中很少會遇到中文、英文、數字「混合三打」的情況。俗話說得好,行走江湖技多不壓身,多一門技術,多一門吃飯的寶貝。廢話說的有些多了,接下來就直奔主題吧!
  • Excel怎麼設置只提取指定行中的數據?
    Excel怎麼設置只提取指定行中的數據?有些時候我們需要從一個excel文件中的資料庫中提取指定的行或列中的數據。例如如圖示,是國內所有上市公司的行業統計。但是現在我們只需要其中部分上市公司的行業統計,我們怎麼辦呢,下面分享一個技巧,需要的朋友可以參考下有些時候我們需要從一個excel文件中的資料庫中提取指定的行或列中的數據。例如如圖示,是國內所有上市公司的行業統計。但是現在我們只需要其中部分上市公司的行業統計,我們怎麼辦呢,是一個個查找,然後複製嗎,當然不是。
  • MID函數怎麼用?如何提取數字
    本期小編與大家分享一個非常實用的函數即MID函數,該函數可以輕鬆提取你想要獲取的數據,一起來看看吧。MID函數表示按照指定的條件對字符串進行截取。語法結構:=MID(目標單元格,開始位置,截取長度)注意:該函數的提取方法是從左往右提取指定的數據。
  • excel函數公式大全之利用SUM函數IF函數的嵌套把成績劃為三個等級
    excel函數公式大全之利用SUM函數和IF函數的嵌套把學生成績劃為三個等級。excel函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數SUM函數和IF函數。
  • Excel如何批量建立超連結,搭建工作檯
    本篇是「建立工作導航」的第3講,如果您錯過了前兩篇,請點擊下方連結:只要5秒,批量提取文件名,快速建立EXCEL工作檯文件路徑科技的力量起初是用來替代重複勞動,那建立超連結這種固定步驟的操作必然可以交給電腦自己來完成,否則它就不是一臺成熟的電腦。上回已講了如何批量提取文件名,下面就說一下如何建立超連結。
  • WPS Excel: 從身份證中提取生日、年齡、性別、籍貫、生肖、星座
    提取生日公式:「=TEXT(MID(A2,7,8),"0-00-00")」函數「MID(A2,7,8)」可以從A2單元格的第7位開始提取8位數字,再用TEXT函數將提取到的數字顯示為「年-月-日」格式。
  • 最常用日期函數匯總excel函數大全收藏篇
    在我們的實際工作中,經常需要用到日期函數。日期函數那麼多,你還只會用函數TODAY嗎?那你就OUT了。今天一起來看下常用日期函數的用法! 1、DATE 函數DATE:返回在日期時間代碼中代表日期的數字。