當前位置:首頁 > 科技 > 正文

複制粘貼太慢,公式太難,這才是最強的數據處理神技

與 30萬 粉絲一起學Excel


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)


假如是提取第1個數字,将2改成1即可。
=正則提取(A2,"(\d+)","+", 0 , 1 )


當然,這段自定義代碼,還有非常多的用法,比如提取全部數字,用分隔符号隔開。第4參數的0換成1,再将第5參數去掉。
=正則提取(A2,"(\d+)","+", 1)


最後,還可以對全部數字進行求和,這裡換個案例,直觀點。将第4參數的1改成2。
=正則提取(A2,"(\d+)","+", 2)


重點記住第4參數:
0 表示取數字中的第n個字符串
1 表示提取後和分隔符Delimiter連接起來,
2 表示求和,注意需提取數字

從上面的案例可以看出,不管多亂,都能提取任意數字,全部數字,甚至求和,接近全能的代碼。


請把「Excel不加班」推薦給你的朋友

你可能想看:

有話要說...

取消
掃碼支持 支付碼