【数据分析工具】数据可视化神器:PowerBI

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部分的内容,部分数据分析工具请翻看历史文章,更多数据分析工具的文章持续更新中,敬请期待,如果觉得不错,也欢迎分享、点赞和点在看哈~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容