2018/6/11

google試算表獨家函數(excel不會)—regexextract抽取字串中的數字

在處理資料的時候,有時必須抽取出字串中的數字部份,如果資料格式整齊一致,在excel中可以用len、left、right、search等簡單函數處理。

但如果資料是這樣:
105
A50
BB7
CCC125
42
7

那麼就需要使用excel的陣列公式,例如這個教學。不過陣列公式並不容易理解,寫起來不但傷腦筋還有限制。但如果使用google試算表,那麼使用regexextract這個獨家函數(regular expression extract的縮寫)配合正規表示式,寫起來就非常直觀了。

假設有以下影集名稱資料,需要抽取其中的集數:

資料非常不整齊,唯一可以用的規律是集數皆為阿拉伯數字,如果用excel的陣列公式會很難寫。先把資料貼到google試算表,並使用公式如下:
這個公式中,[0-9]+是正則表達式,可以辨識字串中第一次出現的數字,輸出結果如上例B欄,其格式預設為文字,所以會保留數字前面的0。如果需轉為數字格式,則在公式後多寫+0即可:
輸出如C欄所示。結果可貼回excel。

除了抽取數字,這個函數的用途應該很廣,只要是可以用正則表達式描述的字串,例如英文字母、電話號碼、身份證字號等等,皆可用regexextract提取,讀者可自行試驗。

沒有留言:

張貼留言