1. 概述
1.1 應用場景
有時候我們希望從目標字串中提取出所有的數字,重新組合成一個字串,如下圖所示:
1.2. 實現思路
方案一:
先將字串分割成陣列,再對陣列每一項進行篩選,保留下數字,最後以字串匯出。
1)先利用 split( ) 函式進行分割,這裏要分割每一項,所以分割符為空:=split(目標字串,""),如下圖所示:
2)利用 GREPARRAY( ) 函式對上一步結果進行篩選,這裏使用了 regexp( ) 函式來判斷是否是數字:=GREPARRAY(上一步結果, regexp(item, "[0-9]")),如下圖所示:
3)使用 JOINARRAY( ) 函式將陣列以字串方式匯出,連結符為空:=JOINARRAY(上一步結果, ""),如下圖所示:
4)綜合起來,公式就是=JOINARRAY(GREPARRAY(split(目標字串, ""), regexp(item, "[0-9]")), ""),如下圖所示:
方案二:
使用公式:JOINARRAY(split('a1B2Cc3','\\D'),'')
公式說明:SPLIT 函式的第二個參數支援支援正則表式作為間隔,因此這裏的 \\D 表示的是匹配一個非數字字元,然後再用JOINARRAY( ) 函式將陣列以字串方式匯出,連結符為空。
注:若您使用的是 11.0.5 以及之後的版本,可以直接使用 TEXTGETNUM 函式。
2. 範例
注:本文以方案一為範例。
2.1 範本設計
1)將資料集欄位拖到儲存格 A2 ,如下圖所示:
2)依次選中 B2~E2 儲存格,設定形態公式,如下表所示:
儲存格 | 公式 | 作用 |
B2 | split(A2,"") | 用 split( ) 函式進行分割 |
C2 | GREPARRAY(B2, regexp(item, "[0-9]")) | 用 GREPARRAY( ) 函式對上一步結果進行篩選,這裏使用了 regexp( ) 函式來判斷是否是數字 |
D2 | JOINARRAY(C2, "") | 用 JOINARRAY( ) 函式將陣列以字串方式匯出 |
E2 | JOINARRAY(GREPARRAY(split(A2, ""), regexp(item, "[0-9]")), "") | 整合B2~D2公式 |
2.2 效果預覽
1)PC端
儲存範本,點選PC端預覽,如下圖所示:
2)行動端
3. 範本下載
點選下載範本:提取字元中的數字.cpt