前两天我无意中刷到了一篇文章《生产计划中,如何把二维排程中的计划转成一维排程?》。我是被标题吸引到了,于是就打开了看了一眼。
原来作者的目的是把左侧的二维表格转换成右侧的一维,就是一个数据转换的问题。我在平时工作中也遇到这种情况,有些人做的排产表格是二维格式的,这种模板的好处是很直观,可以清楚的识别出哪些任务,在什么时间需要完成多少数量。
但是这种表格的缺点也很明显,数据难以汇总,也就不方便做分析。我个人更喜欢用一维的方式排列,当然这只是个人的习惯,并没有绝对的高低之分。我很好奇这位作者用什么样的方式完成数据转换,于是我就继续看下去。
不看不知道,作者使用了在我看来比较复杂的方法。他用了许多Excel中的函数,包括了经典的Index + Match组合,甚至还有Excel最近推出的Filter函数,真是一波操作猛如虎。
其实,这种情况只需要用Excel中的Power Query功能,就能轻松搞定了,根本不需要搞得那样复杂。接下来我来演示一下如何操作。
原始数据如下,想要操练的同学们可以复制,粘贴在Excel里。
工单号 |
1月1日 |
1月2日 |
1月3日 |
1月4日 |
工单1 |
1600 |
400 |
||
工单2 |
500 |
500 |
||
工单3 |
400 |
300 |
400 |
|
工单4 |
200 |
300 |
①在数据菜单中点击②“来自表格/区域”,然后在③对话框中点击确认,这样就把数据选中,进入Power Query的界面。
然后我们就看到这个页面,初次使用的话会感觉到上面的信息量有些大,不过我们也不用担心,即使是零基础的人也可以操作。
在①“转换”这里找到②“逆透视列”,选中③“逆透视其他列”。
接下来就出现了这个视图,初看之下,它就是我们想要的“一维排程”数据,点击①“主页”,再点击②“关闭并上载”就可以了。
结果出来了,对比一下原先的一维排程,结果不能说是相似,只能说是一模一样啊,而我仅用了不到一分钟就搞定了,全过程不用输入任何的公式,只需要点击鼠标就可以了。
如果我们想把一维数据转换为二维的,该怎么处理呢?其实也很简单,它基本上就是一个逆向操作的过程,让我们先把数据摆好。
工单号 |
日期 |
数量 |
工单1 |
1月1日 |
1600 |
工单1 |
1月2日 |
400 |
工单2 |
1月2日 |
500 |
工单2 |
1月3日 |
500 |
工单3 |
1月2日 |
400 |
工单3 |
1月3日 |
300 |
工单3 |
1月4日 |
400 |
工单4 |
1月3日 |
200 |
工单4 |
1月4日 |
300 |
同样是在①“数据”菜单栏中,选中②“来自表格/区域”,然后在③对话框中点击确认,这样就把数据选中,进入Power Query的界面。
接下来的步骤是①点击“转换”,然后点击②“日期”栏,出现全部选中的效果。然后再点③“透视列”,出现下方的对话框,在值列中选择④“数量”,再点⑤高级选项,聚合值函数为“求和”,最后⑥点确定。
我们就看到了这样的页面,在这里点击①“主页”,然后选择②“关闭并上载”就大功告成。
我们得到了和原来的二维排程中完全一致的结果,在整个过程中也不需要输入任何公式,只需点击几下鼠标就可以了。
Power Query是嵌套在Excel中功能很大的数据分析工具,我仅是学了点皮毛,但它给我的感觉是很惊艳的。
使用函数是可以解决问题,但步骤太多复杂,对使用者的要求也很高。相比之下,Power Query轻松搞定同样的问题,简直是太好用了。数据转换是很小的一个功能,Power Query是一座宝藏,值得花些时间深入研究。这是我的第一个收获。
我的第二个感悟是,我们平时在处理一些繁杂重复的工作,很费时间却没有创造出多少价值。此类工作或许是可以用更高级的功能来实现的,从而大幅提高工作效率,只是我们受限于认知水平,不知道这些方法。持续学习是提升自己认知的好方法。学习是一辈子的事情。
最后,提升认知最为快捷的方法是向他人求助。我以前在使用Access数据库的时候,曾遇到过一个难题,怎么想都解决不了,后来请教了高手同事,一下子就破解了困扰已久的问题。多向高人学习能够大幅缩短自己摸索的时间。
本篇介绍的内容是数据处理中的小技巧,希望能对您的工作有所启发。