Power BI 数据分析基础

目录

1、Power BI数据分析来了,您准备好了吗?

2、数据分析语言DAX(优雅简洁的数据分析语言)

3、Power BI数据源导入(数据表格准备)

4、数据分析之计算列(数据分析的辅助神器)

5、数据分析之度量值(数据分析的主力神器) 

6、计算列与度量值区别(DAX公式写法选择)

7、计算列与度量值数据类型(规范数据类型)

8、运算符详解(DAX公式必会基础)

9、表、列、度量值的引用(规范公式编写规则)

10、DAX公式格式化与注释(让公式更具可读性)

11、条件分支函数IF(甄别是非的利器)

12、条件分支函数SWITCH(升级版IF函数)

13、多表关系设置(初识数据建模)

14、多表关系设置进阶(数据建模进阶)

15、变量的应用(加快数据处理的法宝)


1、Power BI数据分析来了,您准备好了吗?

(1)Power BI安装,可以下载安装,也可以在微软应用商店安装。

(2)Power Query-M语言,数据清洗。参考课程:《Power BI商业智能分析教程--数据清洗》

(3)Power Pivot-DAX语言,数据分析。

定义:又名超级数据透视表,PowerPivot是数据透视表的强大“后台”,存在于Excel和Power BI中,以结构化的方式来存储数据,利用计算公式,为报表和可视化图表提供丰富的分析维度和度量。

使用Power Pivot可以汇聚来自各种来源的数据,允许您执行强大的数据分析和创建复杂的数据模型。

作用:数据分析。

优点:更强大的数据分析能力,更强的性能处理。PowerPivot通过使用其内存中的引擎和高效的压缩算法,能以极高的性能处理大型数据集。

那什么是DAX呢?在Power Piovt中完成的所有数据分析都是使用的公式完成的。这种公式就叫DAX公式。

友情提示:

    Power Pivot主要功能是做数据分析,千万不要混淆用做数据清洗。如需数据清洗,请先在Power Query中完成,然后再导入到Power Pivot做后续的数据处理。

2、数据分析语言DAX(优雅简洁的数据分析语言)

什么是DAX?DAX公式始终以等号(=)开头。在等号后,可提供计算为标量的任何表达式,也可提供能转换为标量的表达式。

一、编写DAX公式的位置:

(1)新建表

(2)新建列

(2)度量值

二、DAX公式的应用场景:

(1)DAX在Power BI中的应用

(2)DAX在Excel中的应用

3、Power BI数据源导入(数据表格准备)

一、从Power Query中加载表格

(1)导入文件

(2)手工输入

二、在Power BI中创建表格

(1)手工输入

(2)函数生成

4、数据分析之计算列(数据分析的辅助神器)

计算列,相当于给表格加添列,属于行上下文计算。计算列占用模型加载时间,计算结果占用内存。以下是计算列的几种应用场景:

(1)做聚合时的值(不推荐)

(2)做筛选器分类(推荐)

(3)在报表行、列中做筛选(推荐) 

5、数据分析之度量值(数据分析的主力神器) 

度量值,返回结果一定是个标量值(单值),而不能是列或者表格。度量有测量、计量之意。度量值会受环境影响,所写DAX公式会在不同计值环境中计量出不同结果。度量值只是在查询时才计算(消耗CUP),不占用内存与磁盘空间。下面学习一下度量值在不同报表形态下的运算:

(1)一维表中的度量值

(2)二维表中的度量值

(3)图表中的度量值

(4)切片器下的度量值

6、计算列与度量值区别(DAX公式写法选择)

如果其他人发送一条DAX公式给您?如何区分是计算列公式,还是度量值公式呢?这里约定俗成的方法是:

计算列公式:列名=DAX公式

度量值公式:度量值名:= DAX公式

在Excel中必须这样区分,但在Power BI中可以直接输入“=”开始。在Power BI中也可以通过图标区分,计算列用表示,度量值用表示。

有的数据分析需求使用计算列和度量值都能完成,但还有一些偏向设置。

适用于计算列的情况有:

(1)计算结果用于切片器、矩阵的行列区等具有筛选性质的场景。

(2)对文本或数字分类,比如“优良中差”等级分类,分数、业绩等数字的分类划分。

适用于度量值的情况有:

(1)做聚合运算

(2)能用度量值的尽量不用计算列(如单价*数量)

7、计算列与度量值数据类型(规范数据类型)

数据类型的确认是在对表做数据分析前非常重要的一项工作。在Power BI中的表格列和度量值都可以设置数据类型。

整数:DAX数据类型只有64位整数,所有整数值之间的内部计算都是使用64位整数。

十进制:十进制数总是以双精度浮点值的形式存储。

定点小数:定点小数分隔符的位置是固定的,小数分隔符右侧始终有四位数。

日期/时间:表示日期和时间值

日期:仅表示日期(没有时间部分)

时间:仅表示时间(没有日期部分)

文本:Unicode字符数据字符串。可以是字符串、数字或文本格式表示的日期。

True/False:为True或False 的布尔值。

二进制:二进制数据类型用于在数据模型中存储图像。DAX中无法使用。历史原因还暂时存在。

8、运算符详解(DAX公式必会基础)

在编写DAX公式时,运算符也是要必须掌握的,下表列出了常用运算符:

运算符类型

符号

用法

返回值

小括号

( )

改变计算优先级

不定

算术运算符

+

返回数字

-

*

/

文本连接符

&

文本连接符

返回文本

比较运算符

=

等于

返回布尔值

<>

不等于

>

大于

>=

大于等于

<

小于

<=

小于等于

逻辑运算符

&&

逻辑与

||

逻辑或

IN

包含判断

NOT

否定判断

9、表、列、度量值的引用(规范公式编写规则)

 在编写DAX公式时,除了会使用各种运算符、函数、各种标量值之外,有需要引入表、列、度量值这3种重要的元素。

引用元素

建议写法

不建议写法

示例

引用表

'表名'

=COUNTROWS('销售表')

引用列

'表名'[列名]

[列名]

=SUM('销售表'[数量])

引用度量值

[度量值]

'表名'[度量值]

= SUMX('销售表','销售表'[数量]*[单价])

在上面的写法中,要关键区分引用列与度量值。原因如下:

(1)引用列时建议写带上表名的原因在于,在生产环境中,分析涉及到的表可能有多个,多个表之间可能有相同列名,如果不带上表名,可能无法识别。

(2)引用度量值时,如果带上表名,可能无法区分引用的是列,还是度量值。

两个温馨提示:

(1)在编写DAX公式时,如果要引用表、列,最好在函数的参数中编写,这样具过滤功能,可以将无关的引用对象排除。

(2)当编写的度量值比较多时,可以统一创建在一个表中。

10、DAX公式格式化与注释(让公式更具可读性

比较简短的DAX公式可以写成一行,长的DAX公式也可以写成一行,可读性太差。需要格式化。最好的办法是格化成多行显示。换行使用ALT+ENTER键,格式化DAX公式最主要是格式化函数,的要求如下:

(1)函数名与左括在一行

(2)每个参数独占一行

(3)反括号占一行

(4)函数名与反括号对齐

(5)参数要缩进

比如对SUMX函数格式化:

DAX公式 =

SUMX(

    '销售表',

    '销售表'[数量]*'销售表'[单价]

)

格化式DAX公式只是第1步,如果希望可读性更强,加上注释更好。注释分为单行注释与多行注释。单行注释符号为“--”或者“//”;多行注释符号为“/*”开头,“*/”结束。

以下是单行注释各位置的写法:

DAX公式 =

//迭代聚合函数应用

--根据数量与单价计算金额

SUMX(

    '销售表',--提供表格

    '销售表'[数量]*'销售表'[单价] //金额计算

)

以下是多行注释各位置的写法:

DAX公式 =

/*多行注释第1

多行注释第2

……

*/

SUMX(

            /*这是一个迭代器函数

            这是求和函数

            */

            '销售表',

            /*提供求和的表

            提供的为表格对象

            */

            '销售表'[数量]*'销售表'[单价]

            /*计算金额

            提供数量与单价

            */

)

11、条件分支函数IF(甄别是非的利器)

IF函数相信已不再陌生,无论是在Excel中,还是在大多数编程语言中都有关于if的函数或者是语句,在DAX中同样也提供了if函数,主要是以下三种书写方法:

(1)IF两个参数写法

if2 =IF(7>1,"YES","NO")

(2)IF三个参数写法

(3)IF嵌套写法

12、条件分支函数SWITCH(升级版IF函数)

 为什么说SWITCH函数是IF函数的升级版?原因在于写书方式更科学,从参数结构层面看起来更舒服。SWITCH函数的书写方式有以下两种:

第1种,根据不同的值返回不同结果。

SWITCH ( <表达式>, <值1>, <结果1>, [<值2>, <结果2>, … ], [<备选结果>] )

 switch1 =

SWITCH("c",

"a",10,

"b",20,

"c",30,

100

第2种,根据不同的判断返回不同结果。

SWITCH ( True(), <判断1>, <结果1>, [<判断2>, <结果2>, … ], [<备选结果>] )

switch2 =

var Score=51

return

SWITCH(

        TRUE(),

        Score>=90,"优",

        Score>=80,"良",

        Score>=60,"中",

        "差"

13、多表关系设置(初识数据建模)

在本课之前讲解的全是对单表的操作,从本节课开始,可能更多是多表之间的数据分析。在进行多表分析前,要将表与表之间建立关系。各表之间有了关联,也就具有数据传递性,这就是数据建模。

在下图中有“产品表”和“销售表”,我们以产品为连接键将这两表做关联,然后以“产品表”中的“类别”为依据对“销售表”中的“数量”求和。

最后汇总结果如下(以表格和图表两种方式呈现),接下来分析一下数据是如何完成传递的,又是如何执行的聚合计算的。

 

无论数据模型多复杂,最科学的关系联结方式是一对多(一端对多端)。因此,我们在建模时最好保持一对多的建模方式。

我们再从另外的角度谈谈这两个表,实际很多时候,我们称“销售表”为实事表,称“产品表”为维度表。

事实表:事实表是数据分析的核心表格,描述业务特定事件的数据。

维度表:就是分析事实表的角度,是从事实表中抽离出来的分析粒度。

14、多表关系设置进阶(数据建模进阶)

前面我们讲解的数据模型是比较简单。本课我们加大难度。如下图所示,分别准备了“类别表”、“产品表”、“部门表”、“员工表”、“销售表”。从整个数据模型在看,“销售表”是事实表,除此之外全是维度表。现在已经建立好关系。 

 

对应各表的关联设置,数据从一端到多端做数据沿袭传递。 

 类别汇总平均销量和总数量,并分析是如何完成数据传递的。

15、变量的应用(加快数据处理的法宝)

变量,就是将数据存储在一段内存中,然后将这段内存贴个标签,这个标签就是变量。变量如果没有使用,是不会计算的,一旦被使用参与计算赋值后,就不会再重新计算。变量的值可以是单值、表格、列表。

        使用变量有三个优点。

        第1,代码可读性。使用变量,能让DAX公式看起来更优雅、简洁。可读性更强强。

        第2,代码复用性。如果会多次使用一个公式,可以将其定义名变量。

        第3,代码性能更高。DAX中的变量执行的是惰性计算。第1次计算出结果后,当再次调变量时,则不会再运算公式,而是直接使用第1次讲算的结果。

         下面学习一下变量的书写方法,如下代码所示,定义方式是var…return…  var后面是定义变量,可以定义多个。return后是返回结果,可以是变量名,也可以是DAX公式。

变量定义在独立行中,如下金额1度量值所示:

金额1: =

var price=AVERAGE('销售表'[单价])

var total=

    SUMX(

        '销售表',

        '销售表'[数量]*price

)

return

    total  

求和1 =

var avgs=AVERAGE('销售表'[单价])

var sums=SUMX(

                        '销售表',

                        '销售表'[数量]*avgs

                        )

return

        sums

变量定义在函数参数中,如下金额2度量值所示:

金额2: =

SUMX(

    '销售表',

    var price=AVERAGE('销售表'[单价])

    var total='销售表'[数量]*price

    return

        total     

)

求和2 =

SUMX(

        '销售表',

        var avgs=AVERAGE('销售表'[单价])

        var moy='销售表'[数量]*avgs

        return

                moy

)

  • 2
    点赞
  • 37
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

Colorfully_lu

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值