1. 概述
1.1 應用場景
有時候我們希望找出字符串中指定字符共有多少個,如下面,A 或AA 字符的個數:
1.2 解決思路
将字符轉化爲數組,篩選出指定的字符,然後統計數組長度,即爲指定字符的個數。或者通過指定字符分割處理後的原字符串來求出個數。
2. 解決步驟
2.1 單個指定字符
1)将字符拆分爲數組,拆分符爲空:SPLIT(目标字符串, "")
2)通過 GREPARRAY( ) 函數篩選指定字符:GREPARRAY(上一步結果, item = "A")
3)通過 LEN( ) 函數來計算數組的項數:LEN(上一步結果)
4)綜合起來,公式就是:LEN(GREPARRAY(SPLIT(目标字符串, ""), item = "A"))
2.2 單個或多個指定字符
1)先拼接處理目标字符串,這裏指定字符串爲 AA:CONCATENATE("AA",目标字符串,附加符)
在前面拼接一個指定字符串是爲了防止目标字符串裏完全沒有指定字符串的情況下,第二步的分割函數也能生效
在後面拼接一個附加符是爲了防止指定字符串剛好在目标字符串的末尾,附加符可以是任何不包含於指定字符串的字符。
2)使用 SPLIT( ) 函數分割字符串,分割符爲指定字符串:SPLIT(上一步結果,"AA")
3)通過 LEN( ) 函數來計算數組的項數:LEN(上一步結果)-2
4)綜合起來,公式爲:LEN(SPLIT(CONCATENATE("AA",目标字符串,"-"),"AA"))-2
3. 示例
3.1 模板設計
1)将數據集字段拖到單元格 B2、B3 ,如下圖所示:
2)依次選中 C2~F2、C3~F3 單元格,設置形态公式,如下表所示:
單元格 | 公式 | 作用 |
C2 | SPLIT(B2, "") | 将字符拆分爲數組 |
D2 | GREPARRAY(C2, item = "A") | 通過 GREPARRAY( ) 函數篩選指定字符 |
E2 | LEN(D2) | 通過 LEN( ) 函數來計算數組的長度 |
F2 | LEN(GREPARRAY(SPLIT(B2, ""), item = "A")) | 整合 C2~E2 公式 |
C3 | CONCATENATE("AA",B3,"-") | 拼接處理目标字符串 |
D3 | SPLIT(C3,"AA") | 使用 SPLIT( ) 函數分割字符串 |
E3 | LEN(D3)-2 | 通過 LEN( ) 函數來計算數組的長度 |
F3 | LEN(SPLIT(CONCATENATE("AA",B3,"-"),"AA"))-2 | 整合 C3~E3 公式 |
3.2 效果預覽
1)PC端
保存模板,點擊PC端預覽,如下圖所示:
2)移動端
4. 模板下載
點擊下載模板:計算字符串中指定字符個數.cpt