强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan
【前言】
最近在微信朋友圈中看到一篇不错的文章(《将24小时的一天过出48小时的效率,我是怎么做到的?》),无巧不成书,刚刚又在项目中做了一次导数据的任务,在做完后感觉收获许多,于是总结一下,发现得出的结论结论可以用这篇文章竟标题来代替!
【有趣探索旅程】
一、前提:
说起导数据,相信参加过维护评教和考试的小伙伴们都是刻骨铭心吧!回想起当时,真是一把辛酸泪,无数次哭晕在厕所。怎奈何?冤家路窄,今天又遇到这个问题,真是泪崩,真怀疑是上班前忘去少林寺给自己开光哈(程序员带服务器进寺庙开光 让法师保佑永不宕机)。
二、需求:
由于模块要单独做成产品,所以要数据做支持;数据:16年6月份和7月份某企业的18个装置的所有三个类型的现金流,每天的开单数据,将数据汇总在一起;
三、两种实现方式花费时间及流程:
1、采用系统的界面导出方式:
(1)操作一次流程:点开日期加载出报表数据,另存为Excel,打开Excel将数据进行复制,在汇总Excel中进行粘贴;
(2)测试操作一次所用时间1分钟(在正式服务器上操作该流程测试出来,时间主要花费在系统每次加载报表数据);
(3)完成该需求需要进行操作次数18*61*3=3294次(其中18代表18个装置,61代表6月份和7月份的总天数,3代表三个类型现金流);
(4)结论:共需花费时间—3294*1=3294分钟=54.9小时。
2、分析系统直接在数据库中查,并利用Excel一些技巧实现方式
(1)查询出所有明细数据:
A.操作流程:通过报表系统找到SQL语句并修改SQL语句查出每个类型的每个月的每个装置的数据,将该数据从数据库中复制到汇总表中共需操作次数:18*2*3=108次(18代表18个装置,2代表两个月,3代表3个现金流类型);
B.将查询出的效果依次复制到汇总表中;
C.操作完后的效果图:
(2)查询出所有汇总并填到(1)中明细中:
A.操作流程:在明细表中添加一空行—>将数据库中每个月每个装置的每天汇总数据查询出来—>利用VBA将数据库中的汇总添加到明细表中;共需操作:2*18*2=72次(其中第一个2代表2个月,18代表18套装置,第二个2代表当中需要粘贴到VBAExcel进行一次转换)
B.在明细表中将每个装置的每天的上添加一行(为添加汇总数据所用)(参考:Excel如何两组不同的数据之间插入一行)
原来的数据图:
添加完空行效果图:
D.研究将将汇总数据查询出来自动放到明细表中预留出来的空行中(利用VBA对Excel操作):
①原始数据:
Sheet1:
Sheet2:
②点击执行插入数据按钮后的效果图:
③VBA相应代码(其中按Alt+F11可看到VBA程序):
E.将明细表中的数据粘贴到带有VBAExcel中将汇总给加上,然后将数据粘贴回原表得到最终数据。
F.最终完成的示意图:
G.温馨提示:为什么不在Excel中汇总的时候直接求和而去数据库中再查一遍那?
在查的时候发现Excel详细的数据是在数据库中经过四舍五入的数据,而真正系统报表显示是先求和后再四舍五入;如果按照Excel中直接求和会有偏差。
(3)时间(此时间包括操作时间以及改造SQL语句和尝试使用Excel技巧时间):
A.将除汇总外的数据放到Excel中用时:2016年10月18日 14:00—2016年10月18日18:00=4小时
B.将每天的汇总加入到(2)中汇总的数据用时:2016年10月18日 21:30—2016年10月19日 3:30=6小时
C.共花费时:4+6=10小时
(4)次数:
A.将除汇总外的数据放到Excel中操作次数:108次;
B.将每天的汇总加入到(2)中汇总的数据操作次数:72次
C.总操作次数:108+72=180次
3、两种方式对比:
第二种方式(SQL语句+Excel操作)比第一种方式(通过系统导)时间上减少:54.9-10=44.9小时;操作次数减少:3294-180=3114次
【总结】
1、做一次数据并不是做完算完了,通过总结这个过程形成文档,看出自己所做的工作的意义所在,增加成就感;其次在下次无论是自己还是他人再导数据的时候可以在以上的方法再进行优化;
2、程序猿需要有工匠精神,用心去做完一件事后会感觉好爽;
3、也感受到通过自己的工作节省了这么多的时间,很明显的感受到自己工作的意义,更加深刻的感受到生活的美好。