【真实案例】源数据是个大麻烦-1

在实际工作中,我们要做的报表往往都是很简单的,尤其是通过数据透视表来完成的时候。但是,往往我们拿到的数据是不符合规范的源数据的要求的,我们需要花费很大的时间和精力处理这些源数据。还好,我们现在有了趁手的工具。

PART1

需求背景

这是一个朋友的真实需求。她想要的结果很简单,就是这么一个报表:

这个结果非常简单,一看就是那种可以用数据透视表直接得出的报表。问题是,她的数据是这样的:

这就麻烦了!

面对这样的数据和需求,很多人就直接开始工作了,他们的思路是这样的:

在这种情况下,各种各样的复杂要求就产生了:需要一个复杂的公式,需要写一段VBA代码,或者需要另外一个高级的软件等等。

其实,如果把思路转成下面这样:

我们那些千奇百怪的需求就都消失了😉

看上去,我们中间多了一个制作“源数据表”的步骤,但是实际上,这样的工作让我们的效率提升不止百倍。

关于数据转换,在Excel中提供了很多好的工具。

PART2

数据转换

像这样的原始数据,就是典型的“交叉表”,对交叉表的转化,用的方法是“逆透视”,关于在Excel中,如何使用逆透视,我们有文章详细介绍了方法,你可以阅读这篇文章,根据这篇文章,你可以将这个源数据转换为标准的符合要求的源数据表,从而可以用数据透视表得到想要的结果报表了(实际上几乎可以用数据透视表得到你想要的任何结果的报表)

我们今天介绍另外一种更简单和强大的方法:Power Query。

关于如何在Excel 2013中激活Power Query,可以参考这篇文章。在Excel 2016中,Power Query改名为“获取和转换”。本文以Excel 2016为例介绍操作方法,但是在Excel 2013中可以同样操作。

因为这位朋友发的是真实数据,所以我们做了一下处理。首先我们看处理后的数据:

数据为0的地方是原来数据中为空的单元格,在处理过程中变成了0,不影响我们的操作。

开始转换

首先关闭原始数据Excel文件。然后打开一个空的Excel文件。在“数据”选项卡下,点击“获取和转换”组中的“新建查询”,点击“从文件”,然后点击“从工作簿”:

选择我们的原始数据文件,然后打开。出现“导航器”窗口。在导航器窗口中左边显示了这个工作簿的所有工作表,点击我们需要的工作表,右边会加载(部分)数据。

点击右下角“转换数据”,打开“Power Query编辑器”

这个窗口就是我们用来转换数据的主要阵地。

利用Power Query逆透视

在“Power Query编辑器”中,选中所有的除“商品名称”外的列,点击“转换”选项卡下的“逆透视列”,点击“仅逆透视选中列”

可以得到一下结果:

要注意的是,这个是在“Power Query编辑器”中显示的结果。如果要在Excel工作表中使用,还需要下面的操作。

导入到Excel工作表

点击“Power Query编辑器”的“主页”选项卡中的“关闭并上载”,然后点击“关闭并上载”,

你会在Excel中得到如下结果:

我们可以看到,我们得到了一个标准的源数据表,只要修改列名,就可以在此基础上通过透视得到我们想要的结果了。

PART3

总结

我们平常会帮助企业客户进行数据分析,在这个过程里,需要处理大量的原始数据。这些数据呈现方式各种各样,有些花样你没看到前都想象不出来。为了应付这些稀奇古怪的原始数据,我们开发了数据处理插件,有很多数据处理功能。我自己还有很多设想,希望开发出来提高我们自己处理数据的工作效率。
但是,随着对Power Query了解的越来越深入,慢慢就发现那些数据处理插件的各种功能被闲置不用了,自己设想以后开发的功能也慢慢被放弃了。因为Power Query确实是一个非常强大的数据处理工具,值得所有人去掌握并使用它。

取得本文模板文件的方式:

  1. 关注本公众号

  2. 点击底部菜单“联系客服”,与客服取得联系,索取“源数据是个大麻烦-1”模板文件

觉得好看点个【在看】再走吧

(0)

相关推荐