Power BI 使用

介绍

首先介绍一下什么是 Power BI Desktop。

什么是 Power BI Desktop

Power BI Desktop 是微软推出的一款免费数据可视化和商业智能工具,属于 Power BI 套件的核心组件。它能帮助用户连接、分析不同来源的数据,并创建交互式报表和仪表盘,以直观呈现业务洞察。

已经学习过了 finebi,现在又来了个 powerbi,它们其实都是商业智能的工具。简单讲解一下它俩的区别。

和 finebi 的区别

finebi 是帆软旗下的产品,它是国产的,它是最近几年才兴起的 bi 工具。帆软的东西在很多企业都是被认可的,有证书,FCA 以及 FCP,这都是帆软的证书。而且含金量还可以,很多企业都需要求职者有这个证书才可以。这是报表开发的证书。目前,finebi 的用户群体没有 powerbi 多,在去使用的过程当中,计算功能不太强。但是 finebi 也有好处,图表类型多,制作简单。我们只要拖上去,它的图表自动就是一个动态的。

powerbi 是微软的产品(只支持 Windows 系统),如果是苹果电脑,就用不了这个工具,得借助虚拟机才能够去用它。生态很强,用户群体很多,因为这个东西出来的时间较早,所以熟悉它的人会比 finebi 更多一些。功能很强大,去做数据清洗,或者去做一些计算等等,它的内部给我们提供了很多的计算函数,非常的方便。如果想把这些函数熟练掌握的话,是需要一定时间的。它的图表制作要比 finebi 更复杂点儿,包括样式设计等方面都要稍微复杂。它不能形成那种有动画效果的,要是实现那种效果的话,得借助三方报表,需要联网。

Power BI 的主要功能

介绍一下 PowerBI 的主要功能。

数据连接:这个就是上传数据,它能够连接多种数据源。这也是它比较好的一个点,比如 excel、csv,数据库等等,它都可以获取,都可以连接。同时,PowerBI 还可以从互联网下载数据。

转换和清洗数据,以创建数据模型:建模。

创建视觉对象:比如提供数据的可视化表示形式的图表或图形。这就是一个可视化,finebi 当中我们称之为组件,PowerBI 里面叫视觉对象,就是我们的图表。

制作报表页:报表页等同于 finebi 当中的仪表板。就是换了个称呼而已。

报表发布:使用 PowerBI 服务可以与其他人共享报表。这个跟 finebi 在线版的一样了,用在线版的也可以去共享,这里注意,PowerBI 在去共享的时候需要账号,而且它的这个账号需要用企业邮箱注册。如果以后有这种需求的话,可以到某宝上面看一看。

PowerBI 组成

Desktop 里面主要有这三个东西:报表,数据和模型。图中框起来的这三个从上到下依次就是报表、数据和模型。

报表:用于设计和编辑交互式报表,是最常用的视图 -> 可视化图表及仪表板。

数据:查看和管理导入的数据表、列及原始数据,可以看到所有的数据明细 -> 存放数据,新建表,新建列。

模型:模型,设计和管理数据模型,定义表间关系 -> 建立表之间的模型关系。这个跟 finebi 当中的那个模型是一样的了。

工作流程

添加数据 ---> 数据转换,数据清洗 ---> 创建视觉对象(可视化图表) ---> 创建报表(仪表板) ---> 共享报表。

动手尝试一下

准备工作

打开 PowerBI。打开之后是这个界面。点击左上角的空白报告,先来创建一个文件。

点击之后是这个界面。

这个空白报告创建完成之后,左侧就是之前讲的三个部分。报表、数据,和模型。

数据导入

现在我们上传数据。上传数据有两个地方,1 号位置获取数据,要么就是 2 号位置上传 excel。

点击获取数据的话,它能够支持的数据类型是非常多的。

点击一下更多,可以看看。它能够支持的文件类型非常多。

现在最常用的还是 excel,上传一下文件。它一次只能上传一个 excel 文件。如果想上传多个,得连接一个文件夹才可以。先上传一个数据,点击"从 Excel 导入数据",选择矩阵表,点击打开。

然后它会出来一个叫做导航器的东西。这个就是表,可以点击,点击之后会在右侧有当前图表的预览界面。跟 finebi 的那个界面是一样的,只是 powerbi 的界面稍微小一点点而已。当我们选择了这个表之后,它现在是不能够加载的。

需要点击左侧的小框框,把它勾选上。

勾选上之后,这两个按钮就可以点击了。

解释一下这两个按钮分别对应什么。加载,就是直接上传数据。如果我们点击的是转换数据,它会进入到 power query 当中,这个界面专门做数据清洗。也就是这个 powerbi 除了 desktop 这个界面以外,它还有个界面叫 power query。这个 power query 就是专门做数据清洗的。我们现在点击"转换数据"来看一看。

点击"转换数据"之后,我们进入到了这个界面,和平时我们用到的 Excel 界面有点儿像。

主页、转换、添加列、视图、工具,帮助。这就是 power query 的界面。而且这个界面和 finebi 的右侧也是差不多的。右边有个数据流------应用的步骤,里面会记录你当前数据清洗的流程。数据清洗的步骤在这里可以看的到。同时,还可以点击旁边的小齿轮,对你的数据来做一个修改。

现在,我们还不需要数据清洗,我们找到主页当中的关闭并应用。

点击之后,它会给我们回到 powerbi desktop 界面。

在最右侧有一个数据,下方有一个表,这就是刚才我们自己上传上来的,可以点击看一下,当前这张表里面有哪些字段。

如果想要查看表里有哪些数据,左侧第二个,有个表格视图。

点击,直接来切换一下表格视图。在表格视图当中就可以看到你当前所有的数据啦。

有时候数据清洗,还没做完,但是不小心给它关闭并应用了,想要重新回到数据清洗的界面,怎么办呢?找到右侧的表,鼠标右键点击。点击之后会出现一条菜单栏。

在这里面,有一个标记查询,点击编辑查询,它会帮我们重新打开 power query。这时候又能进行数据清洗的操作了。

点击一下关闭并应用,回到 desktop。这就是我们的数据导入。

现在把 desktop 的界面介绍一下。

Desktop 界面介绍

我们回到 desktop 界面的报表视图。

最上面的这行是工具栏。可以在这里面修改你的数据源或者刷新数据源,或者是调整你图表的格式等等。

中间的这一部分,虚线是边界。中间这个部分就是我们的仪表板。所有的图表会在这里显示。

在它右侧,有一个可视化的东西。它就是我们所有的图表。

在最右侧就是数据展示。

最下方,左下方,它是我们的报表页。

当我们进入到一个网站,点击导航栏里面的这个小字,那个标题,就会跳转到另外一个网页。这里的报表页也是一样的作用,在这里可以添加多页。添加完成之后,再添加一个叫做页面导航器的东西。就能够通过点击文字进行页面跳转了。这个也是它比较好用的地方。

创建视觉对象

先使用一个图表认识一下,找到矩阵表。

点击矩阵,这个矩阵表就跟我们的分组表是一样的,换了个名字而已。当我们选择了某个图表之后,这里会展开一个东西,叫做筛选器。这个筛选器是专门用来过滤我们的字段内容的。

比如,只想展示销售额排名前十的商品,在这儿,就可以通过筛选器来对里面的内容进行过滤。不像在 finebi 当中,是点击字段的倒三角然后点击过滤就能够实现的。在 powerbi 当中需要自己去在筛选器里操作一下。

现在把筛选器折叠,点击这个图表,选中。不能点这个画布背景,点了画布背景之后是拖不了任何图表的。先选中图表,当我们选中之后,右边有个行、列,和值。

它类似于交叉表,有行列和值。

拖入字段

想把谁作为行,就把字段拖入进去当中。比如,想把班级作为行,这个时候就把班级拖入到行当中去。在图表当中,班级就有了。

想把科目作为列,拖入到列当中。

把分数作为值,分数拖入到值当中。现在这个图表完成了。

当你的字段被这个图表用了以后,它这里会有勾勾。

不像 finebi,finebi 字段你现在用的是哪一张图表的,它没有一个明确的提示,你得把字段放上去它才会显示出来。这是两者的一个区别。

还有一个姓名,把姓名也拖入到行里面去。左侧就出现了 + 号。

点击 + 号把它们都展开。我们现在要看的是,不同班级下,每个学生他们的语数外成绩情况。

现在这个效果已经实现了。做出来之后可以对样式进行一下修改。

值和行列标题样式修改

颜色和字体

样式在第二个地方。叫设计视觉对象格式,我们点击一下。

点击之后它也有两个选项,一个是视觉对象,一个是常规。视觉对象就是当前图表里的每个系列;如果是常规就是对于这个整体,比如背景色,设置边框,这个都是常规里设置的。

修改字体大小

如果想修改一下字体大小,找视觉对象里面,它里面有很多的选项,先来找到这个值。

什么是值?里面的这些分数就是我们刚刚拖入的值。

把值展开,现在字体大小是 10 个像素。我们把它改成 18。效果看上去还可以。

修改文本颜色

除此之外,还可以修改当前的文本颜色。把这个字体改成蓝色。然后我们发现是背景为白色的字体改成了蓝色,其他的没有变化。

还有一个叫做备用文本颜色,它是这种交叉形式的。隔一行改一下,这是一个交叉的。

修改背景颜色

背景颜色也能修改。比如现在默认的背景颜色是白色,给它改成浅灰色。

替代背景色给它改成白色,改回去。最后是这个效果。

改完这些值的样式之后,它的总计是没有去修改的。这里有专门的两个选项,需要自己去改的。收起值,找到列小计和行小计。把它俩全部都取消勾选,这样我们就能看到每个班级每个学生他们对应的语数外三科成绩了。

修改标题样式

刚才我们改的是值,这里的标题、班级,还有姓名这些,都是没有变的。这些字体也希望改一改。找到列标题和行标题。

我们先来展开列标题。

把字体改成 20,然后我们可以看到班级、数学、英语,语文这些列标题的字体大小发生了改变。

在下面还可以调整它的对齐方式。可以对它们进行一下居中,点击居中。

还可以把鼠标放在框的边缘进行拖拽。我把它们都横向拖拽得更宽一些。

旁边的班级和对应姓名,也要把它们变大一点,找到行标题,再给它单独设置一下字体大小。

也让行标题进行一下居中。

现在发现,我们要去设置一下字体大小,还要去区分值、区分行、区分列,稍显复杂。这是关于颜色和字体的调整。

单元格元素

它里面有一个单元格元素的东西。

这个东西比较好用。它现在看上去是一个分数总和,也就是我们刚才拖入的值,我们希望给这些值添加一些样式,背景色、字体颜色、数据条、图标、网络链接都可以的。

数据条

对于这种值比较常用的是数据条。

你的数据完成了多少,可以点击 fx 自己来进行设置。

正值改为大红色,负值改为绿色,我们自己手动来决定它的值不同范围使用什么颜色。

这个是数据条。

现在关闭数据条,还有字体颜色也可以设置,但是很少。我们通常还喜欢给它添加图标。

图标

打开图标,然后点击 fx 给它编辑一下。

这个值,大于或等于 0,小于 60,就是一个向下的箭头。大于或等于 60,小于或等于 100,就是一个向上的箭头。默认是百分比,我们把它改为数字。因为现在的值都是整数。点击确定看看。

效果就有了,60 分以下的向下箭头,60 分以上的向上箭头。我们更加习惯性地把箭头放在右侧,于是,可以继续点击这个图标。先点击 fx,进入以后,有个图表布局,我们给它改到数据右侧。点击确定。这个效果它就实现了。

整体上没有 finebi 那么美观,再一个,很多人在制作这种表的时候,可能不太希望有这种交替的颜色。希望还是可以统一一下,不要一行灰色一行白色的,不太好看。这时候我们可以找到布局和样式预设。

布局和样式预设

收起单元格元素,在视觉对象当中,找到布局和样式预设。点击一下将它展开。

把样式的默认值,改为"无"就可以啦。这样就全部都变为白色的了。

整体样式设置

单独的表我们设置完了,在看看整体给设置一下。我们看看常规里面。

标题

在这当中我们可能会用到的,比较频繁的是标题。选中标题按钮。

在文本那里输入标题"班级成绩明细表"。然后我们让它进行居中。

标题,字体肯定要大一点儿,设置为 20,再给它加粗一下。字体颜色也可以改,设置为红色。

效果

收起标题,它下方有一个叫效果的东西。

在效果当中,可以去设置边框。也可以添加阴影效果。

这是矩阵表的最后效果。

筛选器

假如在当前的成绩表里面,不要展示所有班级的内容,只要1班和2班的。这个时候可以点开右侧的筛选器。

发现啥也没有,这是因为我们选中了画布。我们需要点击一下图表,筛选器的内容就展示出来了。

筛选器里面有我们刚才用到的字段,找到班级字段,这里有几种类型,我们用基本筛选,先把它们全部选中,然后把3班取消勾选就行。现在就做完了筛选操作,我们可以看到没有3班了。

这就是筛选器的作用,可以根据自己的需求进行筛选操作,也相当于过滤了。

常用操作

运算符与新建列

它当中的符号和 finebi 里的没有太大区别。

注意,它这里的不等于是小于符号加上大于符号"<>"。in 和 not in 是成员运算符,判断当前内容是否包含了什么东西。接下来演示一下。需要到表格视图里进行操作。

+ - * /

把当前的分数整体扣个 10 分。它所有操作都是针对列的,而且不能直接在原数据中修改,只能通过新建列的方式。

在表工具里面有一个新建列的东西。

要求我们在这里写一个对应的公式。按住 Ctrl 并滚动鼠标滚轮可以将这个地方放大和缩小。现在给它放大一下。

在这儿我们要去写一个公式,在去写公式的时候一定要注意,我们将某列的值整体都 -10,所以我们的前提条件是,一定要先指定这一列。

在 powerbi 当中,选择列有两种方式。第一种,'表名'[字段],单引号里放表名然后中括号写入字段,这是用来选择列。第二种,[字段],直接中括号里面放入一个字段。演示一下。

取个名字,分数减10。先输入一个单引号,会自动出来内容,选中 '表'[分数],接下来再输入 -10,按下回车。这样新增的一列就有了。

第二种方式,我们可以直接写一个中括号,选择分数,然后让它去 -10。

这两个效果是一样的,但是这两种用法有区别。如果用的是第一种,'表名'[字段],它会更加明确当前这个字段是哪张表中的字段。如果用的是第二种方法,[字段],它只会搜索当前表中的字段。所以我们在进行定位的时候,更加推荐用第一种方式。除非只有一张表,可以用第二种省事儿。

=、 >、 <、 >=、 <=、 <>

逻辑运算,它返回的结果要么是正确的,要么是错误的。也就是布尔值 True/false。

判断分数不等于 80 分。不等于用 <> 符号表示。先点击新建列,取个名字,分数不等于80。选择分数减10字段。回车。我们可以看到返回的只有 True 和 false。如果是 True,说明不等于 80,如果是 false,说明正好等于 80。

&&、 ||、 not、 &、 in、 not in

分别表示与、或、非、字符串连接、包含、不包含。讲一下 &,字符串连接。

给班级后面再加一个 "班"。新建列,给班级加字儿,用原本的班级拼接 "班"。注意,原本的班级是个文本类型,所以要拼接的内容也一定是个文本。它这里的字符串或者文本,只能用双引号,所以拼接的内容要用双引号引上。

在 Power Query 中添加列

我们的新建列,除了在 PowerBI Desktop 当中实现,还有一个地方,我们还可以在 Power Query 当中进行数据清洗的时候来添加列。选中当前表鼠标右键,点击编辑查询。然后我们就进入到了 Power Query 编辑器当中。

在这里,有一个添加列的选项,点击它,然后选择自定义列。

让分数全都减去 20,先取个名字,分数减20,然后写公式就行了,选中右侧字段分数,双击就行了,也可以点插入。再输入-20,点击确定。

完成之后点击主页,关闭并应用。这个内容就帮我们同步过来了。

如果字段特别多,有个隐藏字段功能。把鼠标悬停在右侧字段正上方,有个小眼睛。

点一下,这个小眼睛就可以帮我们把字段隐藏掉,虽然在表格界面还能看得到,但是当我们进行可视化的时候,就找不到这些字段了。

建模

建模需要至少两张表。我们上传一下。上传新建列里的销售表和商品表。直接点击加载就可以。

把这两张表一起添加进去,再把原本这张表折叠起来,看一下这里面数据长什么样子。

商品表的字段比较简单只有两个,一个是品名,一个是进价。第二个,销售表,它有日期、商品名称还有销售数量。观察一下,我们可以把商品表作为维度表, 因为它当中的品名都是唯一的。把销售表作为事实表,它就相当于一个数据的明细,在这里,每一个商品都有多条出售记录。

点击模型视图。

进入到模型视图里可以看到所有的表。

商品表和销售表是我们要进行建模的。选中商品表中的品名,手动拖到销售表的商品名称上方。powerbi 有个特点,如果字段名称是一样的,它就会自动添加模型关系,名字不一样,用这种方法拖动就可以了。

拖过去之后,检查这个新关系。从商品表到销售表,它们通过品名和商品字段来建立模型关系的。关系是一对多,商品表是1的一方,销售表是N的一方,就可以从商品表来筛选销售表的数据了。下方还有使此关系可用,要勾选上。然后点击保存。

现在它俩中间就会多一根线,商品表是1,销售表是*,*是多的意思,方向是从商品表到销售表。

如果想要修改,在右侧有个属性的东西,可以改,打开关系编辑器,手动进行修改就可以了。

函数

在两张表建立关联了之后,尝试用函数。这个函数叫做 RELATED。打开百度搜索去搜 DAX 函数。找到微软官网然后点进去。

用到哪个在这里搜就可以了。

我们现在用到的函数叫 RELATED,我们就搜它。来看一下怎么去用。

这里放了一个语法。RELATED 是函数名字,里面传递一个参数,这个位置放入列。

下方有对应的解释。第一句话就是说,两张表之间一定要先建立模型,如果没有建立模型,RELATED 就用不了。它的作用是返回另外一个表的相关值。

在销售表新增一列,销售成本。成本应该等于进价*销售数量,现在这两个字段来源于不同的两张表,我们接下来要用 related 函数实现销售成本列的新增。

打开销售表,直接在这里新建一列。

列名命名为商品单价,用 RELATED 函数,这个单价是和销售表有关联的商品表里的进价。

通过这种方式,它能够自动把值匹配过来。

有了数量,有了单价,可以继续新建一列,命名为销售成本,这个成本等于当前销售表里的商品单价乘以当前表里的销售数量。

RELATED 通常是从事实表当中添加维度表里面的内容。

注意,这里面的所有函数都是大写,小写会报错。

LOOKUPVALUE

仍然是先去官网学习文档里面查找一下。可以查到它的用途和语法。返回满足一个或多个搜索条件指定的所有条件的行的值。下面是参数解释。

解释一下这个语法。(这句人话语法来自湖南好课优选教育)这是两张表没有建模时候可以用的。

先回到销售表当中,把销售成本这一列删除。

然后到模型视图当中,将两张表的关系删除。

现在这两张表没有关联了,我们回到销售表的表格视图当中,点击新建列。

列名命名为销售总成本,第一个拿的是商品表中的进价,第二个拿商品表当中的品名字段,第三个是当前表的商品名称字段。因为商品表的品名和销售表的商品名称是匹配依据。这样进价就拿到了,然后用这个进价乘上当前表的商品数量,就得到了总成本。把商品单价那一列删掉。

这两种都可以,RELATED 要求两张表必须建立模型关系,LOOKUPVALUE 要求两张表必须有一个字段是保持一致的,也就是符合建立模型关系的条件但还没有建模。

度量值

它是一个动态的值,可以根据添加的维度自动展开。好处:可以更加节省资源。

回到报表视图界面,把班级成绩的报表放旁边,选择卡片图。

选择销售表里面的销售总成本,勾选上。

现在这个销售总成本是没有变化的。我们再来创建一个度量值,回到销售表的表格视图。选择表工具,点击新建度量值。

命名为销售总成本_动,它应该是当前销售总成本的和。

回到报表视图,把刚才的卡片图复制一份。

字段给去掉,用刚才新建的度量值,也就是销售总成本_动。

两者出来的结果是一模一样的。但还是有区别。

销售总成本本质上是一列,在原数据当中修改的。销售总成本_动是根据原本的数据计算出来的一个动态的值,虽然两者在展示上面没有太大的区别,但是它比新建列更加节省资源。

另外,如果是度量值,我们可以动态来展示筛选数据后的结果。再介绍一个函数,CALCULATE。

CALCULATE

正割函数非常强,它计算修改后的筛选器上下文中的表达式。这个东西可以动态来筛选我们的数据,看一下示例。这个例子计算了最晚一天销售日期的销售额。

现在需求是一样的,有很多商品,放入一个度量值,计算所有商品的成本总和,如果单独计算一个商品,可以用这个函数。鼠标右键,选择新建度量值。

命名为D产品的销售额,这俩还没建立模型,建立一下。

建立好了之后回到度量值那里,命名为D产品的销售额,使用 CALCULATE,这个函数的第一个参数得是一个聚合的值,这里刚好计算了一个销售总成本_动,这个不是字段而是一个聚合的值,就是那个度量值;接下来是筛选的,商品的品名是D,然后就可以了。

现在,D产品的销售额就被单独计算出来了,把刚才的卡片复制一份,把别的字段取消勾选,然后选上刚刚计算出来的度量值D产品的销售额。单独的D产品的销售额就是17.60。

这就是建立度量值的好处。以后尽量能用度量值就用度量值。

什么时候新建列?

当我们需要辅助列的时候,比如排序,本身是无序的,但是在画图表的时候又希望有一个顺序,这个时候就可以新建一个辅助列;单独作为一个维度筛选数据的时候,比如商品表当中的品名,我们想根据品名来筛选商品的时候。

切片器

演示一下。选择切片器。

我们希望根据商品的名称,把品名勾选上。

在上面选择商品就会有动态的变化。但是D产品销售额没有变化。

在放入切片器的时候就可以使用新建列,这个时候不太适合用度量值。

聚合函数

求和:SUM('表'[字段])
求平均:AVERAGE('表'[字段])
最大值:MAX('表'[字段])
最小值:MIN('表'[字段])
记录数:CountROWS('表')

这几个聚合函数和 finebi 当中的是一样的。这个东西知道就行了,需要用的时候现查。

逻辑函数

IFERROR

可以在官网搜一下。如果你的表达式是错的它才会生效,否则不会生效。两个参数,第一个是你的值,第二个是如果出错的怎么办。

上传数据条件判断里的例1~例5。点击加载。

先来看一下例1,一共有两列,一个是销售数量,一个是单价。

希望能够计算它的销售额,销售额等于数量乘单价,直接去计算会有问题。

这里的数量当中有个字母 s,是不能和数字进行计算的,所以它报错了。

这时候,可以把它放在 IFERROR 的函数里面,如果报错就用 0 来填充,这种方式就行了。

IF

放入中括号里的是可以省略不写的。

例2当中,性别为男称呼为先生,为女称呼为女士。

SWITCH

例3,如果是1就是一月,2就是二月。月份列。

相关推荐
龙腾AI白云17 小时前
如何利用知识图谱实现推理和计算
人工智能·深度学习·语言模型·自然语言处理·数据分析
极光代码工作室18 小时前
基于Hadoop的日志数据分析系统设计
大数据·hadoop·python·数据分析·数据可视化
keke.shengfengpolang19 小时前
别只盯着6500的平均线!2026物联网高职生,如何靠“数据思维”让薪资再跳一级?
数据分析
工业互联网专业1 天前
基于Python的广东旅游数据分析_flask+spider
python·数据分析·flask·毕业设计·源码·课程设计·spider
Kun丶2 天前
Global Mapper 修改DEM
数据分析
炼丹炉大数据2 天前
炼丹炉:宠物电商数据工具首选
大数据·数据分析·宠物
rgb2gray2 天前
论文详解:基于POI与出租车轨迹的城市多中心结构静态-动态多重分形特征
人工智能·python·算法·机器学习·数据分析·可解释
一叶萩Charles2 天前
AI数据分析实战指南
人工智能·数据挖掘·数据分析
龙侠九重天2 天前
使用 OpenClaw 进行数据分析和可视化
大数据·人工智能·python·ai·信息可视化·数据分析·openclaw