【干货】应对大数据量仍以毫秒级姿态刷新的帕累托图

浏览: 1956

今天的标题虽然很绕口,但表达很清楚,就是在数据很多的时候,你不要想用函数来做报表,因为会卡死你。

上一篇文章《【干货】无需代码,用Excel快速获取生意参谋数据,永远不怕被封!》被不少人喷了,不少网友表示只要复制粘贴就好了,干嘛搞这么麻烦,故弄玄虚。

说这话的是真正的吃瓜群众,明显没有拉过生意参谋的数据,生意参谋不允许任何的爬虫程序,而且不少店铺是禁止使用第三方生意参谋工具的。不久前让一个小伙伴拉生意参谋的数据花了一周7天的时间……我无奈的表示,任何自动化的东西在手动面前都是鸡肋,复制粘贴万岁!

吐槽就这样吧,下面进入主要内容。

本文采用的示例数据集是一家TOP1店铺的商品数据,7月3号到7月9号的商品数据,采集自生意参谋的商品详情。共24990条数据,也就是说这家店铺有3000多个品,目标很简单只需画出每一天数据的帕累托图。

帕累托图是长这个样子的:

1.jpg

上图反映的是某行业品牌的市场份额情况,80%的点右偏说明这个行业的品牌存在竞争的空间。

我们目标做的是店铺/企业内产品的帕累托图,同理也可以做出店铺/企业内品牌、品类的帕累托图

数据存在csv文件中

2.jpg

文件只有3.7MB

3.jpg

CSV文件中的数据如下图所示,包含字段名共24991行

4.jpg

打开Excel在【Power Pivot】选项卡中点击【管理】,转到Power Pivot窗口

5.jpg

在Power Pivot窗口中点击【从其他源】,进入表导入向导

6.jpg

在表导入向导中,选择【文本文件】,然后点击【下一步】按钮

7.jpg

在下图的对话框中,先点击【浏览】按钮选择好文件路径,在将复选框【使用第一行作为列标题】打钩,在预览界面中观察到数据显示无误后,点击【完成】按钮

8.jpg

观察到状态出现成功,和传输的行数无误即可点击【关闭】按钮

9.jpg

点击【关闭】按钮后,就可以看到Power Pivot的数据视图了。

10.jpg

先将日期改成【日期】的数据类型,还有其他度量可以统一设置成【小数】

11.jpg

拉到表格最右边添加列计算累积占比,计算出每一天的累积占比。

12.jpg

键入公式:

=SUMX(FILTER('a店-商品-样本',EARLIER('a店-商品-样本'[支付金额])<='a店-商品-样本'[支付金额]&&EARLIER('a店-商品-样本'[日期])='a店-商品-样本'[日期]),'a店-商品-样本'[支付金额])/SUMX(FILTER('a店-商品-样本',EARLIER('a店-商品-样本'[日期])='a店-商品-样本'[日期]),'a店-商品-样本'[支付金额])

随后,在Power pivot窗口中点击【主页】-【数据透视表】-【数据透视图】

13.jpg

随后弹出创建数据透视图对话框,点击【确定】按钮

14.jpg

在数据透视图字段设置窗口,将商品ID拖拽到轴,支付金额和累积占比拖拽到值

15.jpg

右击图表,点击菜单中的【更改图表类型】按钮

16.jpg

在更改图表类型窗口中先点击组合,然后将累积占比的次坐标轴复选框中打钩,最后点击【确定】按钮

17.jpg

在【插入】选项卡中,点击【切片器】

18.jpg

在【日期】字段前的复选框打钩,然后点击【确定】按钮

19.jpg

完成后这图基本看不懂,先点击支付金额的柱形,然后点击【开始】选项卡的【排序和筛选】-【降序】

20.jpg

得到的图形结果如下,这是2017年7月3号的。

21.jpg

这是2017年7月4号的,并设置右侧坐标轴的上限为1

22.jpg

将上图放大,并定位到80%的位置,明显左偏。

23.jpg

经分析,3千多个商品,其中370个商品超过总销售业绩的80%以上

进一步,将商品ID和类目关联,可以画出按品类的帕累托图

或者在时间宽度足够长的时候(一年约有110万行记录)将时间粒度改成月份、季度、甚至是年份。

如果用Power BI运算效率会更高,在用Excel内置的Power Pivot的时候,还是会有些卡顿,但要比用函数好得多。


本案例测试电脑配置:笔记本,core i7-6700HQ,2.6GHZ,金士顿16g内存

第一次运算花费100毫秒,第二次运算先清理缓存再运算时间是61毫秒,第三次运算是没有清理缓存的情况下,运算是28毫秒。

实际上在Excel中的运算并没有这么快,由于是Excel的封装缘故,运算时间要长于在DAX Studio上运算的时间。

24.jpg

如果觉得零一有料,请转发给你的亲人朋友,我可以帮助到你的亲人朋友。

如果觉得零一水货,请转发给你的对手仇家,我来帮你祸害你的对手仇家。

如果不知道有没有用,请转发到朋友圈,让万能的圈圈为你验证


之前高飞老师用DAX Studio测试过一组数据,下图引用自公众号:PowerBI极客

二次运算的用时指的是首次运算结束后,不清空缓存再次执行重复计算所花费的时间(单位毫秒)

25.jpg

1亿行数据的首次运算时间(经过算法优化后)是100毫秒,这个数据足以让做报表的朋友心跳加速!

推荐 0
本文由 零一老师 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册