假期刚回来,都开始研究公式,VIP群内有一个超级复杂的问题,普通人想破脑袋估计都写不出公式,而群内高手却写出了3个方法,其他人看完都直呼牛B。
![](http://image109.360doc.com/DownloadImg/2023/10/0707/273400573_2_20231007072743573.png)
备注里面混合着各种内容,现在要将金额提取出来求和。
![](http://image109.360doc.com/DownloadImg/2023/10/0707/273400573_3_20231007072743682.png)
唯一的规律就是补贴XX元,下面来看群内3位高手提供的方法。
1.mazuli =SUM(ISERR(-(0&MID(A4,ROW($1:$198),1)))*TEXT(LEFT(SUBSTITUTE(MID(A4,ROW($2:$199),99),"元",REPT(" ",99)),19),"[>];;0;!0")) ![](http://image109.360doc.com/DownloadImg/2023/10/0707/273400573_4_20231007072743854.png)
好复杂,看得头都大了。
2.张哥 自定义函数: ![](http://image109.360doc.com/DownloadImg/2023/10/0707/273400573_5_2023100707274442.png)
看起来很简单,其实隐藏起来的VBA才是关键。
开发工具,VB,插入模块,将代码粘贴进去。 Function 金额求和(rng As String) Application.Volatile Dim reg As Object Set reg = CreateObject("vbscript.regexp") reg.Global = True reg.Pattern = "-?\d+\.?\d+(?:元)" Set matt = reg.Execute(rng) For Each ma In matt s = s + Val(ma) Next 金额求和 = s End Function
![](http://image109.360doc.com/DownloadImg/2023/10/0707/273400573_6_20231007072744198.png)
3.紫色 定义名称: ![](http://image109.360doc.com/DownloadImg/2023/10/0707/273400573_7_20231007072744417.png)
定义名称比自定义函数简单一些。
选择D4单元格,点公式,定义名称,输入名称为金额,引用位置将下面的公式粘贴进去,确定。
=EVALUATE(SUBSTITUTE("N("""&SUBSTITUTE(A4,"补贴",""")+N("),"元",")+N(""")&""")") ![](http://image109.360doc.com/DownloadImg/2023/10/0707/273400573_8_20231007072744589.png)
最后,当你觉得自己很牛,Excel都够用的时候,比起他们,可能还有很大的差距。 ![](http://image109.360doc.com/DownloadImg/2023/10/0707/273400573_10_2023100707274511.png)
作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)
|