密集恐懼症
數據雜了、亂了,是不是讓人很是頭疼?就像4天前發布的一篇短文叫《Excel中如何将幹淨混合數據中的漢字和數字分離》,可以用簡單的兩個函數将幹淨的混合數據分離,注意是“幹淨數據”。什麼叫“幹淨數據”,隻可意會不可言傳。
有讀者留言道:“如果漢字數字漢字的混合呢?怎麼提取數字呢?”這真是讓人快要瘋了的問題,可想我們在使用數據中所享受的是怎麼樣的摧殘!
圖1
答案其實很簡單,用三個函數即可輕松解決:
(一)TNumber()函數
該函數可将字符串中所有像0-9這樣的數字字符全部提取出來,組成一個新的純數字字符組成的字符串。
(二)TEnglish()函數
該函數可将字符串中所有像a-z這樣的英文大小字符全部提取出來,組成一個新的純英文字母組成的字符串。
(三)TCinhese()函數
該函數可将字符串中所有除數字字符和英文字母以外的字符(肯定包含漢字了)全部提取出來,組成一個新的字符串。
關鍵是别聽廣告,看療效!
圖2
圖3
圖4
圖5
是不是很簡單!
其實,也不是那麼簡單。Excel中根本沒有提供這三個函數,上邊用到的三個函數是用戶自定義函數,也就是說是為了滿足特定的需求,用戶自己的編寫的函數。
函數代碼粘貼于後,至于怎麼使用這些代碼,請參見相關VBA中相關課程或聽下回分解。
****************************************************
‘用戶自定義函數代碼 Function TChinese(str_source As String) As String Dim n_len As Integer n_len = Len(str_source) For i = 1 To n_len If Not (Asc(Mid(str_source, i, 1)) >= 48 And Asc(Mid(str_source, i, 1)) <= 57) And Not (Asc(Mid(str_source, i, 1)) >= 97 And Asc(Mid(str_source, i, 1)) <= 122) And Not (Asc(Mid(str_source, i, 1)) >= 65 And Asc(Mid(str_source, i, 1)) <= 90) Then TChinese = TChinese & Mid(str_source, i, 1) Next i End Function Function TEnglish(str_source As String) As String Dim n_len As Integer n_len = Len(str_source) For i = 1 To n_len If (Asc(Mid(str_source, i, 1)) >= 97 And Asc(Mid(str_source, i, 1)) <= 122) Or (Asc(Mid(str_source, i, 1)) >= 65 And Asc(Mid(str_source, i, 1)) <= 90) Then TEnglish = TEnglish & Mid(str_source, i, 1) Next i End Function Function TNumber(str_source As String) As String Dim n_len As Integer n_len = Len(str_source) For i = 1 To n_len If (Asc(Mid(str_source, i, 1)) >= 48 And Asc(Mid(str_source, i, 1)) <= 57) Then TNumber = TNumber & Mid(str_source, i, 1) Next i End Function
****************************************************
@珠海漁夫123
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!