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
)
Power BI 数据分析基础相关推荐
- 微软认证BI专家雷元带你全面搞定Power BI数据分析
如同当年迎接计算机的发展.互联网的冲击那样,数据将成为第一生产力.我们要如何迎接数据时代的来临? 作为一个普通人,我们如何能走在这场数字变革的前端,又如何去掌握数据分析的能力? 资深数据分析师雷元告诉 ...
- power bi数据分析_Power BI数据模型:使用关系
power bi数据分析 In this article, we look at how to create different types of relationships between two ...
- 【好书推荐】Power BI数据分析从入门到进阶
2022年新书出版,人生第一本书,厚积薄发,写这本书前,积累了十年,看了同类30本书,越来越有写一本书的强烈念头.<Power BI数据分析从入门到进阶>机械工业出版社5月出版,欢迎大家支 ...
- python的power bi转换基础
I've been having a great time playing around with Power BI, one of the most incredible things in the ...
- Power BI数据分析实战——柏拉图的制作
在公司也实习半年了,半年做了很多Dashboard,也经常用Tableau,但是我还是觉得Power BI更好用一些,可能比较适合小白,入门简单,很容易就能做出不错的Dashboard. 前一段时间老 ...
- excel 时间戳_我没有Excel基础,可以学Power BI吗
当然可以!没有Excel基础一样可以熟练掌握Power BI ! Excel基础可以略微影响Power BI的上手速度,却不能决定最终对Power BI的运用能力. 如果有Excel基础学习Power ...
- powerbi视觉对象_玩转Power BI的图片可视化
制作可视化报告时,为了展示效果,有时候需要用图片来展示,在 Power BI 中,关于图片的自定义视觉对象主要有下面三个,利用他们可以很轻松的进行图片可视化. 下面来看看这些视觉对象的效果. 样本数 ...
- Power BI中突出显示矩阵的最大值与最小值
> 本文翻译自国际Power BI大师Alberto Ferrari的文章--<Highlighting the minimum and maximum values in a Power ...
- Power BI+Power Apps联动初尝试
我们知道Power BI是用来制作报表和仪表板的工具,也就是Power BI是数据分析结果的输出,一般操作上这些分析结果很难再输入到一些业务流程中.在下面这个例子里,我们会引入Power Apps,将 ...
- 从Excel到Power BI,为什么越来越多的职场人纷纷选择Power BI?
文末赠书 "IT有得聊"是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业.实用的知识与技能,快速提升职场竞争力. 点击蓝色微信名可快速关注我 ...
最新文章
- hello world!!(Java)
- [Android Studio] Android Studio常用快捷键
- Ice-3.5.1在CentOS 6.5系统中的编译配置教程
- Oracle顶级认证OCM考试实战总结
- c#中的Form.Show和Form.ShowDialog的区别
- 可汉学院python_可汗学院离线版本
- 前端学习(2537):vue源码解析2伪数组转换为真数组
- win10进程太多怎么优化_用过最好用的Win10优化软件,全方面优化和管理!
- 随机化算法 —— 数组置乱器的实现
- leetcode 198 动态规划
- ODBC安装及数据源配置
- SQL 之group by查询语句
- 关于删除某文件需要TrustedInstaller权限的解决方法
- MATLAB 使用 loglog semilogy 不显示对数坐标
- 远程桌面系统管理员以限制你登入计算机,windows远程连接时:系统管理员已经限制你可以使用的登录类型(网络或交互式)解决办法...
- CDN及其加速原理(详解)
- SSA ASS (Advanced SubStation Alpha) 字幕
- Leetcode-数据结构-88. 合并两个有序数组
- CodeForces - 1364D Ehabs Last Corollary(dfs树找最小环)
- SpringMVC几个模型对象
热门文章
- 基于计算机显卡的研究
- 2018高考数学江苏第16题计算量你做主
- c#推箱子小游戏代码_C# 简单推箱子游戏源码
- svn 命令行使用总结
- Spring Boot+Spring Security:基于URL动态权限:自定义Filter - 第17篇
- DZ先生怪谈国标28181-2016之目录查询
- Python办公自动化实战 01 | Python优势与自动化思维让你的工作化繁为简
- 算法 图4 哈利·波特的考试
- h30-t10 android phone,荣耀3C移动2G版(H30-T10)官方完整版ROM全合集!!!
- iPhone--卡贴是什么