01 写在前面
为什么要写【数据分析工具】这个系列文章?还是回到一个最根本的问题上:数据分析到底是干什么的?
数据分析虽然是以业务为主,工具为辅,业务为目的,工具为手段,但巧妇难为无米之炊,只有掌握了基础的工具才能够进行数据分析。但工具千千万,Excel、SQL、Python/R、SPSS、SAS、PowerBI/Tableau,到底哪些才是数据分析师日常工作中必备的工具?哪些是没有必要花费时间精力的花架子?数据分析工具这个系列,我们就一起来看一下哪些是数据分析师真正需要熟练掌握的工具!
Excel是目前最基础、也是应用最广的数据分析工具,百万行级别以下最好用的数据分析工具,没有之一,不接受反驳!熟练使用Excel,能够解决数据分析中80%的问题,而且非常灵活、快速和高效,所以Excel作为数据分析师必备的基本技能,重要性不言而喻。
很多想入行数据分析的小伙伴学习Excel没有经过系统的指引与训练,而往往是来自于各种东拼西凑的知识,感觉自己很懂Excel,所以简历上就非常自信地写上了“精通Excel”这样不知天高地厚的字眼,面试一问起来才发现自己的纯真和无知。是的,当你还觉得Excel很low很简单的时候,说明你还没有被它震撼和教育过,越是精通Excel的大神越会觉得它的强大和自己的无知。
那么想入行数据分析的同学来说,怎么快速高效地掌握Excel这个数据分析的利器呢?根据笔者多年来的工作经验,作为数据分析师,提升Excel水平可以按照这样的学习路径:
1)基本操作包括数据的简单处理汇总、图表制作等,属于Excel基础知识,一般大家都能正常使用。
2)熟练掌握常用的函数后,你就可以做简单的数据统计、分析和数据可视化等工作了。
3)为了进一步从不同维度对关心的指标进行上卷、下钻分析,还需要非常熟练地掌握数据透视表,这也是Excel最为强大、使用最为频繁的功能。
4)为了实现复杂的业务分析,解决不同数据源、海量数据的分析问题,我们就需要掌握PowerQuery和PowerPivot,PowerQuery负责整合多重来源数据,并进行数据转换,PowerPivot对整合后的规范化数据进行高效率的透视分析,几百万上千万行数据均不在话下。
5)当然,这个时候可能还不够,因为平时还有很多任务是需要每天手动处理的,所以PowerBI横空出世了,PowerBI融合了PowerQuery和PowerPivot的功能,你可以利用PowerBI制作好你想要监控的核心报表,以后只要更新数据源,报表就能自动化生成,再也不用每天重复地复制粘贴做表格了!
前面已经总结了一些数据分析工具,有兴趣的可以翻看之前的文章,包括:
1、【数据分析工具】手把手教你制作Excel仪表盘
2、【数据分析工具】数据分析必知必会的Excel函数(文末领取Excel教程)
3、【数据分析工具】Excel数据透视表:菜鸟也能做数据分析(文末领取教程)
4、【数据分析工具】Excel也能玩转大数据分析,超级透视表Power Pivot
图片
02 什么是Power BI?
在大数据时代,随着数据驱动业务观念的普及,商业智能BI(Business Intelligence)已经成为了,但究竟什么是BI?不同的人可能有不同的答案。这里我用最简单直白的方式给出我的理解:商业智能 (BI)是一系列技术和工具,通过可视化这种更易于理解和传递的形式,洞察海量数据背后的业务价值,完成从数据到信息的过程,进而帮助业务做出更有效的商业决策。
而谈到BI,我们就不得不提一下微软旗下这款风靡全球的BI神器:Power BI!
Power BI,这个名字在 BI 市场已经存在很长时间了。微软团队长期以来一直致力于构建一个名为 Power BI 的工具包,这个工具包是强大数据整合、处理和可视化的工具组合。它可以整合来自不同数据源的数据,对数据进行清洗、转换等预处理,并提供基于云服务的可视化,方便用户创建交互式的仪表板和分析报告。为企业提供数据洞察,帮助进行业务决策。
有了PowerBI这一整套技术方案,数据分析师可以低门槛、自助式地进行数据分析,方便地创建各种主题的分析报告和高交互性的仪表板,而不必依赖信息技术人员或数据库管理员来开发可视化报表。
Power BI之所以能够轻松地实现如此强大的功能,是因为它有很多强大组件的加持。
图片
Power Query:它可用于搜索、访问和转换公共和/或内部数据源。
Power Pivot:用于内存分析的数据建模。
Power View:您可以使用 Power View 以交互式数据可视化的形式分析、可视化和显示数据。
Power Map:它通过交互式地理可视化使数据栩栩如生。
Power BI Service: 您可以共享可从本地和基于云的数据源刷新的数据视图和工作簿。
Power BI Q&A: 通过自然语言查询提出问题并立即获得答案。
Data Management Gateway: 通过使用此组件,您可以获得定期数据刷新、公开表和查看数据馈送。
Data catalog:用户可以使用数据目录轻松发现和重用查询。元数据可以促进搜索功能。
对Power BI的定位、架构、组件和功能有个大致的了解后,我们通过一个实际案例,一步一步来创建一个完整的数据可视化报表。
03 Power BI实际案例介绍
在进行这部分之前,我们首先需要在这里https://powerbi.microsoft.com/zh-cn/下载并安装PowerBI Desktop,安装过程非常简单,这里不再赘述。
我们这里以一个非常熟悉的销售数据分析为例,介绍PowerBI的使用步骤。在这个案例里,为了展示Power BI整合不同的数据源的能力,我们将使用来自两个数据源的数据,这种情况在实际业务中也很常见,很多数据都是来源于不同的数据源。
数据分布在多个数据源中是很常见的,例如一个数据库中的产品信息和另一个数据库中的销售信息。您将在本文档中学习的技术包括 Excel 工作簿和 OData 源,但这些技术也可以应用于其他数据源,如SQL Server 查询、CSV 文件或 Power BI Desktop 中的任何数据源。
在案例中,我们将从 Excel(产品信息表)和 OData 源(订单信息表)导入数据,并会做一些数据转换和清洗的操作,最终创建基于PowerBI销售数据分析的可视化报表。
这是最终可视化报表的样子:
图片
本案例中涉及到的数据以及整个可视化报表资料,可以在文末获取下载方式!
04 Power BI中导入数据
1、从Excel中导入产品信息
首先,我们要把记录产品信息的Excel工作簿产品信息.xlsx 文件导入到Power BI Desktop。
1、启动Power BI Desktop.
2、从主页功能区中,选择获取数据, Excel 是最常见的数据连接方式之一,也可以直接选择它,导入我们事先准备好的产品信息.xlsx。
图片
3、在导航器窗格中,选择,然后选择转换数据,就会出现数据编辑Power Query的窗口,在这里我们可以对数据进行预处理。
图片
2、产品信息表Products预处理
在Power Query编辑器中,我们把产品信息表中除 ProductID、ProductName、UnitsInStock 和 QuantityPerUnit之外的所有列删掉,因为其他的列我们分析时用不到。步骤如下:
1、在编辑器中,选择 ProductID、ProductName、QuantityPerUnit 和UnitsInStock 列(使用 Ctrl+单击选择多个列,或使用Shift+单击选择彼此相邻的列)。
2、从功能区中选择移除列 > 移除其他列,或右键单击列标题并单击移除其他列。
图片
当Power Query编辑器连接到数据时,它会检查每个字段并确定最佳数据类型。对于 Excel 工作簿,库存产品将始终为整数,因此在此步骤中,我们需要确认 UnitsInStock 列的数据类型为整数。
1、选择 UnitsInStock 列,发现该列数据存在小数。
2、右键该列在下拉框中选择更改类型-整数,即可将数据类型更改为整数。
图片
3、从Odata源导入订单数据
还需要导入订单数据,我们通过连接OData 源导入订单数据。在OData源中输入以下链接:http://services.odata.org/V3/Northwind/Northwind.svc/,步骤与之前类似,只是这里导入的数据源不同。
步骤如下:
1、主页-获取数据-选择 OData数据源。
2、在OData 源对话框中,粘贴OData源的URL:http://services.odata.org/V3/Northwind/Northwind.svc/。
3、该数据源下有多个表,在导航菜单中,选择订单表Orders,然后选择转换数据。
图片
4、订单信息表Orders预处理
订单表Orders 中包含了对订单明细表Order_Details的引用,Order_Details记录了每笔订单中单个产品的单价、数量等数据。因为我们要统计具体到产品粒度的销售数据,所以需要用到Order_Details中的一些字段。
1、点击展开Order_Details 表,将其中的 ProductID、UnitPrice和 Quantity 列展开到 Orders 表中,合并作为订单信息表Orders中的列。
图片
2、类似的,我们把订单信息表中除 OrderDate、ShipCity、ShipCountry、Order_Details.ProductID、Order_Details.UnitPrice 和 Order_Details.Quantity 列之外的所有列删除。因为我们此次分析中用不到这些列。
3、以上操作完成后,点击左上角关闭并应用,就完成了整个数据的导入和预处理过程,回到报表界面,我们可以基于处理好的数据创建计算列、度量值进行分析和可视化报表制作。
图片
05 创建数据模型
在上面的步骤中,我们已经完成了两个数据源的导入和数据的预处理,在正式进行数据分析之前,我们需要建立数据模型,即建立订单信息表Orders和产品信息表之间的关联关系,这样Power BI 才能够将两个表进行关联组合,合起来进行分析。
在本教程中,我们通过两个表共有的“ProductID”字段关联订单信息表和产品信息表,使两个表产生关系,建立数据模型。
步骤如下:
1、在报表视图下,在“建模”工具栏下,选择“管理关系”。
2、选择新建按钮,在弹出的创建关系的对话框中,选择两个表Orders和。
3、分别选择两个表的ProductID 字段,就通过该字段在两个表建立了关联关系。
图片
4、切换到关系视图,也能看到两个表之间的关联关系已通过箭头连接表示。
图片
06 DAX创建度量值
上述步骤已经完成了数据的导入、预处理和数据建模,接下来就可以通过定义一些计算列和度量值进行分析了。
在创建计算列和度量值之前,我们先简单的说一下这两者之间的区别,因为这两个概念很容易让人混淆。
计算列基于现有的列创建的一个新列,直接体现为在现有的表上增加了一列,新建的计算列,和表中之前已经存在的列一样,可以作为表格的行、列,图表的轴以及切片器的字段等等,也可以使用计算列与其他表建立关系。
度量值就是一个孤立的公式,是基于现有的列进行计算的结果,并不会作为一列出现在表中,一般是用作一些聚合操作,比如求和、计数、求平均等,都是用度量值实现的。
1、创建计算列
如果我们要计算每个产品ProductID的销售额,我们知道销售额=销量*单价,相当于在现有数据最后添加一列销售额,创建一个自定义计算列来计算每一行每个产品的销售额。
步骤如下:
1、在报表视图中,右键单击右侧订单信息表Orders,单击新建列。
2、在弹出的公式栏中,输入LineTotal=Orders[UnitPrice]*Orders[Quantity],Enter确定。
图片
2、创建度量值
上面仅创建了一个计算列LineTotal,可以看到每个产品的销售额数据,但是如果我们想要进行汇总聚合,在日期、国家维度上看整体的销售量、销售额等数据,我们就需要通过创建度量值来实现了。
基于我们之后要进行的分析,我们需要创建以下几个度量值,我们先将对应的公式写出来,然后再在Power BI中创建度量值:
1、销售量:对订单信息表Orders中的Quantity字段进行求和
2、销售额:对订单信息表Orders中的每个产品的销售额LineTotal字段进行求和
3、平均客单价:上面计算的销售额/销售量
4、销售额月同比增长率:本年某月销售额/去年同期销售额-1
5、销售额月环比增长率:本年某月销售额/本年上月销售额-1
按照上述计算逻辑,在报表视图下,右键订单信息表Orders,点击“新建度量值”:
图片
创建对应的度量值如下:
1、销售量TotalQuantity,直接对Quantity字段求和
图片
2、销售额TotalSales,直接对计算列LineTtoal字段求和
图片
3、平均客单价AvgPrice,可以通过上面新建的度量值再计算
图片
4、去年同期销售额,使用了SAMPERIODLASTYEAR函数,获取当前时间对应的去年同期时间,进而计算去年同期的销售额
图片
5、销售额月同比,本期销售额/去年同期销售额-1
图片
6、本年上期销售额,使用DATEADD函数获取当前时间的上一月,进而计算上一个月的销售额
图片
7、销售额月环比,本期销售额/上期销售额-1
图片
也许你会发现,这里面有一些语法好像没有见过,比如CALCULATE,这里涉及到DAX上下文的理解,DAX非常强大,但也不容易理解,这里篇幅有限,不再展开,有兴趣的同学可以深入研究。
07 创建可视化报表
Power BI 是一个强大的BI工具,可以通过托拉拽方便地创建可视化报表,通过图形化的形式快速洞察数据背后的业务信息。Power BI提供了很多丰富的图表,基于之前创建的度量值等,我们可以通过创建不同的图形形成一个完整的可视化报表。下面我们就来一步步创建这个报表。
1、整体概览
一般情况下,我们希望通过一些核心指标快速判断当前业务的整体情况,而不是直接关注到细节。在报表中,我们通常会将这些核心指标显示在最上方显眼处,这样我们就可以快速得知当前业务情况,我们把之前新建的度量值:销售量、销售额、客单价、销售额同比增长率、销售额环比增长率这5个核心指标依次选取,然后选择“多行卡”,即可把核心指标监控如下图所示。
图片
2、各国家/区域销售量分布
如果我们想直观地获取各个国家/区域的销售数量情况,选择可视化图表“地图”,将shipCountryt拖入到“位置”框,将度量值TotalQuantity拖入“大小”框,地图中圆圈大小展现各国家的销售量情况,将地图放大后如下图所示。
图片
3、各国家/区域销售额占比
如果我们想直观地获取各个国家/区域的销售额占比,选择可视化图表“饼图”,将shipCountryt拖入到“图例”框,将度量值TotalSales拖入“值”框,即可展示个国家/区域销售额占比情况,如下图所示。
图片
4、各国家/区域客单价排名
如果我们想分析各个国家/区域的客单价排名情况,选择可视化图表“堆积条形图”,将shipCountryt拖入到“轴”框,将度量值AvgPrice拖入“值”框,即可展示个国家/区域客单价的排名情况,如下图所示。
图片
5、整体销售额趋势
如果我们想看整体销售额的变化趋势,选择可视化图表“折线图”,将OrderDate拖入到“轴”框,将度量值TotalSales拖入“值”框,即可展示整体销售额历史以来的变化趋势,如下图所示。
图片
6、筛选器
为了方便我们查看特定时间范围内的数据,我们可以添加时间筛选器,放置在报表上方,当我们选定时间范围后,报表里各个图表的数据会和筛选器交互,仅显示筛选器范围内的数据,如下图,我们将日期设置为1998年,报表的数据会跟着更新。类似的,我们可以添加国家/区域的筛选器,进而筛选特定国家/区域的数据,这里不再赘述。
图片
07
发布Power BI报表
通过上面的步骤,我们已经用Power BI成功创建了一个可视化报表。接下来我们可以继续将报告发布到网络上。
点击文件→发布→发布到Power BI,发布报表后,Power BI 会提供一个链接。我们可以单击该链接并在报告发布后查看,且Power BI为了更加方便地提供数据洞察,智能化地形成了一些数据的快速见解,方便我们进行深入的数据分析。
图片
以上就是数据分析工具—Power BI部分的内容,部分数据分析工具请翻看历史文章,更多数据分析工具的文章持续更新中,敬请期待,如果觉得不错,也欢迎分享、点赞和点在看哈~