VIP學員的問題,要将字符串中的第2個數字提取出來。
粗略的看了下,
覺得沒啥規律,挺亂的。公式+手工處理還行,大部分第2個數字是
30開頭,而且都是8位。
=MID(A2,FIND(" 30",A2)+1,8)
Ctrl+E在這裡也能提取絕大部分。
快捷鍵操作詳見文章:
不服來試!被吹上天的Ctrl+E?究竟有多厲害!| 快捷鍵
以上2種方法,如果數據不多,更改個别數字還是挺快的,多的話容易看錯、看漏。
如果要通用的,純公式超級難,于是,盧子思路往VBA方面想。借助VBA的自定義函數可以全部提取。
說明:自定義函數跟普通函數不一樣,精髓在VBA代碼。
第4參數為0,第5參數為2,就是提取第2個數字,不管多少位都行。
=正則提取(A2,"(\d+)","+",
0,
2)
=正則提取(A2,"(\d+)","+",
0
,
1
)
當然,這段自定義代碼,還有非常多的用法,比如提取全部數字,用分隔符号隔開。第4參數的0換成1,再将第5參數去掉。
最後,還可以對全部數字進行求和,這裡換個案例,直觀點。将第4參數的1改成2。
1 表示提取後和分隔符Delimiter連接起來,
從上面的案例可以看出,不管多亂,都能提取任意數字,全部數字,甚至求和,接近全能的代碼。
有話要說...