今天在知乎无意之间看到一篇文章,用 VBA 宏语言 来处理大数据,其实 Excel 中最简单的功能也能做到。
文章大意是,同学换了新工作,在新的岗位需要处理一堆的数据,其中一部分工作就是计算销售金额,然后汇总形成报表给到老板,具体表格形式如下:
据说此数据从某著名系统导出,每张表有上万条,之前有专人负责此数据,具体做法是计算器核算手动填写,工作量可想而知。
对于以上问题,文章中首先想到的是用函数来解决,替换掉里面的汉字,然后将数字进行计算,写了一长串函数(What ? 一长串函数?)给到同学,若干分钟后同学回复:看不懂,不会用。原来此同学对 Excel 函数只了解 Sum自动求和 。
因为同学函数看不懂,于是使用VBA宏语言来解决,两种方法:
第一种:自定义一个函数,直接选择单元格,然后返回计算结果,为了便于理解将此命名为money,最后直接做成加载项,只需加载就可直接使用,具体如下:
Public Function money(rng)
money = Evaluate(Replace(Replace(Replace(rng.Text, "长", ""), "宽", ""), "价格", ""))
End Function
第二种:直接写成代码,稍复杂一些,需要先选中对应要计算的单元格,然后执行代码,执行的时候只需选中对应单元格列就可以迅速出现结果了,大大的简化了操作流程和操作时间,具体代码如下:
Sub Howmuch()
If TypeName(Selection) <> "Range" Then Exit Sub
If Selection.Columns.Count > 1 Then Exit Sub
For Each Sel In Intersect(Selection, ActiveSheet.UsedRange)
Sel.Offset(0, 1).ClearContents
Sel.Offset(0, 1) = Evaluate(Replace(Replace(Replace(Sel.Text, "长", ""), "宽", ""), "价格", ""))
Next
End Sub
VBA 宏语言,对于我这样的小白来讲,真的是一脸懵逼,猜想此同学应该也和我一样。
以上问题,其实Excel 中最简单的功能也能做到——复制粘贴与替换功能,一看就会!具体如下:
1.复制(Ctrl+C) 销售记录整列,粘贴 (Ctrl+V) 到对应销售金额整列
2.选中销售金额整列,按顺序进行3次替换(Ctrl+F) ,即可核算出结果
(1)将 “宽" 全部替换为 “ 0 ”
(2)将 “价格" 全部替换为 “ 0 ”
(3)将 “长” 全部替换为 “=”
以上替换完成,核算结果同步完成,具体如下:
Excel 还有很多常用小功能,在实际工作中,能帮助我们解决很多复杂的工作,这里只是讲到其中的1个小功能。生活亦如此,不忘初心,生活处处有惊喜。
评论留言