首页 > 编程知识 正文

power bi 数据分析师,power bi技巧

时间:2023-05-06 00:43:00 阅读:209721 作者:2680

通过动手实践一些教程,总结一些经验。

PowerBI常用工具:PowerPivot、PowerQuery

一、数据获取-PoweBI 支持从多种数据源导入数据

1、自本地获取数据(本地文件更新,模型数据也会更新)

自本地文件夹自本地文件Excel、 SQL Server、 AccessSAP、 Oracle、 MySQL、 DB2

2、自Web抓取数据

二、数据清洗

1、提升/拉低标题

在 Excel 中第一行为标题行,从第二行开始才是数据,但在 PQ 中,从第一行开始就需要是数据记录,标题在数据之上点击「转换」的「将第一行作为标题」or「将标题作为第一行」

2、更改数据类型

后期数据建模和可视化过程中,很有可能会出现一些意想不到的错误,最后发现是数据类型设置的不对,所以一开始就养成设置数据类型的好习惯

3、删除错误(Error)/空值(null)

数据导入后,有可能出现错误(Error)或者空值(null)「删除错误」、「替换错误」、「取消勾选(null)」

4、删除重复项

选中需要删重的列,右键选择「删除重复项」

5、填充

在 Excel 数据中经常会见到合并单元格的情况,导入后就变成了空值「转换」->「填充」->「向下」

6、合并列

选择需要合并的列,然后在「转换」中找到”合并列“,弹出合并列窗口

7、拆分

拆分相当于是合并列的反动作,不过功能更丰富,可以选着按字符数,也可以选择按分隔符,如果列中包含多个分隔符,还可以选择按哪个位置的分隔符来拆分「转换」->「拆分列」

8、分组

相当于 Excel 中的分类汇总功能「转换」->「分组依据」

9、提取

PQ 的提取功能可以按照长度、首字符、尾字符、范围等来提取

10、行列转置

数据处理有的时候需要行列互相转换一下「转换」->「将标题作为第一行」->「转置」

11、行列操作

「选择行/列」、「删除行/列」、「保留行/列」

12、逆透视列

由于数据分析的需要,我们经常要将二维表变为一维表,之前在 Excel 中需要很多操作步骤才能完成,而通过逆透视功能,可以一键降为一维表,多列属性表转为一维表【属性】+【值】「转换」->「逆透视其他列」

注:

 一维表二维表概念每一个字段都是独立参数,如姓名、科目、分数字段非独立字段,如数学、英语、语文是属于科目维度,不是独立字段优点一维表最适合透视、数据分析的数据存储结构二维表用于展示数据更直观  姓名科目分数kfdyf数学89耍酷的导师数学71kfdyf语文98耍酷的导师语文79kfdyf英语82耍酷的导师英语77 姓名/科目数学英语语文总计kfdyf898298269耍酷的导师717779227王五796877224

转换

方式

一维表转二维表:

透视表

SQL语句CASE WHEN转

二维表转一维表:

逆透视

函数

第三方插件,比如易用宝

总结

数据录入建议都采用一维表

数据分析人员建议使用一维表,无论是表格还是数据库计算都简单方便

对外展示建议使用二维表

 13、透视列

做分析需要一维表,而为了展现的需要,常常还要把一维表变成二维表,也就是 Excel 中的数据透视,在 PQ 中同样可以一键透视,比如把刚才的一维表变成原样,聚合方式选择“不要聚合”。

三、数据丰富

做数据分析的时候还经常需要在原有数据的基础上增加一些辅助数据,比如加入新列、新行,或者从其他表中添加进来更多维度的数据,这些就是数据丰富的过程。

1、添加列

Power Query 中添加列有四种形式,重复列、索引列、条件列、自定义列:

添加重复列:重复列就是把选中的列复制一列,以便对该列的数据进行处理而不损坏原有列的数据添加索引列:索引列就是为每行增加个序号,记录每一行所在的位置,可以从 0 或者 1 开始添加条件列:添加一列根据指定条件从其他列计算的数据,打开窗口看看,其实就是 if 函数添加自定义列:自定义列就是用 M 函数生成新的一列

2、追加查询

追加查询是在现有记录的基础上,在下边添加新的行数据,是一种纵向合并,比如有两个表格式相同,需要合并为一个表,点击“追加查询”

3、合并查询

如果说追加查询是纵向合并,那么合并查询就是横向合并,相当于 Excel 的 VLOOKUP 功能,就是匹配其他表格中的数据,不过 PQ 中的合并查询要比 VLOOKUP 功能强大的多,并且操作也更简单。

四、M函数

简单的操作通过鼠标点击,有些复杂的操作必须借助 M 函数,M 函数更加灵活,简洁高效。
M 函数基本规范:

M 函数对大小写敏感,每一个字母必须按函数规范书写,第一个字母都是大写表被称为 Table,每行的内容是一个 Record,每列的内容是一个 List行标用大括号{ },比如取第一行的内容: =表{0} //PQ 的第一行从 0 开始列标用中括号[ ],比如取自定义列的内容: =表[自定义]取第一行自定义列的内容: =表{0}[自定义

常用的 M 函数:

• 聚合函数:

求和: List.Sum()
求最小值: List.Min()
求最大值: List.Max()
求平均值: List.Average()
• 文本函数:
求文本长度: Text.Length()
去文本空格: Text.Trim()
取前 n 个字符: Text.Start(文本,n)
取后 n 个字符: Text.End(文本,n)
• 提取数据函数:
从 Excel 表中提取数据: Excel.Workbook()
从 Csv/Txt 中提取数据: Csv.Document()
• 条件函数:
if else then (相当于 Excel 中的 IF)

五、数据建模

基数:

基数就是两个连接字段的对应关系,分为多对一、一对一和一对多,一对多和多对一其实是一样的,实际上就是两种关系:多对一(*: 1):这是最常见的类型,代表一个表中的关系列有重复值,而在另一个表中是单一值一对一(1: 1):两个表是一对一的关系,列中的每个值在两个表中都是唯一的具有唯一值的表通常称为“查找表”,而具有多个值的表称为“引用表”。在上述的关系图上,产品明细表上类别手机、平板、电脑都不是唯一的,每个品牌都有这种类型,是个引用表;但类别表上,几种类别都是唯一值,因此这两个表是多对一的关系,类别表也就是查找表

交叉筛选方向:
表示数据筛选的流向,有两种类型:

双向:两个表可以互相筛选单向:一个表只能对另一个表筛选,而不能反向

度量值:用DAX公式创建一个虚拟字段的数据值,她不改变源数据,也不改变数据模型

【主页】->【输入数据】->【表名称】:度量值->【加载】,创建度量值表。

上下文:度量值所处的环境,筛选表的行列标签、切片器的选中,都是度量值的上下文

度量值特点:

度量值不浪费内存,只有被拖到图表上才执行运算,如果数据量非常大的时候这点非常有利度量值可以循环使用,直接调用之前建立好的度量值,在以后模型中新建度量值的时候,推荐从最简单的度量值开始建

DAX:Data Analysis Expression的缩写,意思是数据分析表达式,DAX公式是用作数据分析的

注:除非特别有必要,不建议用新建列的方式做数据丰富,这样更占用内存,如果想增加一列,可以在源数据上,回到查询编辑器里面增加一列然后上载到数据模型中使用。

DAX参数的基本格式:

表名用单引号' '括着 // '日期表'字段用中括号[ ]括着 //[日期]度量值也是用中括号[ ]引用字段始终要包含表名,以和度量值区分开

聚合函数

SUMAVERAGEMINMAXSUMXAVERAGEXMINXMAXXRANKXCOUNT:计数COUNTROWS:计算行数DISTINCTCOUNT:计算不重复值的个数

X这几个函数可以循环访问表的每一行,并执行计算,所以也被称为迭代函数。

时间智能函数

PREVIOUSYEAR/Q/M/D:上一年/季/月/日NEXTYEAR/Q/M/D:下一年/季/月/日TOTALYTD/QTD/MTD:年/季/月初至今SAMEPERIODLASTYEAR:上年同期PARALLELPERIOD:上一期DATESINPERIOD:指定期间的日期

关于时间智能函数,利用它可以灵活的筛选出一段我们需要的时间区间,做同比、环比、滚动预测、移动平均等数据分析时,都会用到这类函数。

筛选函数

FILTER:筛选ALL:所有值,可以清除筛选ALLEXCEPT:保留指定列VALUES:返回不重复值

这几个函数,就是典型的DAX查询函数,通过筛选来操纵上下文的范围。

重要且常用函数CALCULATE

CALCULATE(<expression>,<filter1>,<filter2>…)

第一个参数是计算表达式,可以执行各种聚合运算从第二个参数开始,是一系列筛选条件,可以为空;如果多个筛选条件,用逗号分隔所有筛选条件的交集形成最终的筛选数据集合根据筛选出的数据集合执行第一个参数的聚合运算并返回运算结果

使用时:

筛选条件为空,不影响外部上下文添加限制条件,缩小上下文结合ALL函数,扩大上下文(通常用于做占比分析)重置上下文

FILTER(<table>,<filter>)

第一个参数<table>是要筛选的表第二个参数<filter>是筛选条件返回的是一张表,不能单独使用,需要与其他函数结合使用

CALCULATE([产品数量],'产品明细'[品牌]="苹果")

等同于:

CALCULATE([产品数量], FILTER(ALL('产品明细'[品牌]),'产品明细'[品牌]="苹果"))

如果要做更复杂的运算,通过简单的布尔表达式根本无法实现,必须借助FILTER。

EARLIER(<column>, <number>)

第一个参数是列名第二个参数一般可省略EARLIER 函数提取本行对应的该列的值,实际上就是提取本行和参数列交叉的单元格

六、可视化

1、柱形图

堆积柱形图簇状柱形图百分比堆积柱形图柱形图堆积柱形图簇状柱形图百分比堆积柱形图特征 不同的序列在一根柱子上显示可以直接比较总量的大小分类序列的数值比较功能弱化 不同序列使用不同的柱子可以比较各序列的数值大小总量比较功能弱化 不同序列使用不同的柱子可以比较各序列的数值大小总量比较功能弱化样式

一个合格的柱形图:纵横轴清晰、有图例、有数据单位、和图表呼应的标题,养眼的色彩搭配。

2、树状图(矩形树图)

单层树状图双层树状图

树状图的使用场景:

要显示大量的分层数据条形图不能有效地处理大量值要显示每个部分与整体之间的比例要显示层次结构中指标在各个类别层次的分布的模式要使用大小和颜色编码显示属性要发现模式、离群值、最重要因素和异常相比条形图、折线图,没有任何空白区域,空间利用率高

3、地图

气泡地图-Bubble Map着色地图-Filled MapArcGIS Map

七、图表钻取交互

查看可视化图表的时候,我们可能想深入了解某个视觉对象的更详细信息,或者进行更细粒度的分析,比如看到2017年的总体数据,同时想知道每个季度甚至每个月的数据,通过PowerBI的钻取功能,可以点击鼠标轻松实现。其实只要是数据结构有层级关系,无论是什么类型,都可以进行钻取操作。(钻取日期时间、地理位置)

钻取到下级层级的数据有两种方式:

通过图表右上角的向下箭头“启用深化”,启用“深化”以后,直接点击需要钻取的数据对象

使用顶部 Power BI“数据/钻取”选项卡

编辑交互:选中任何一个可视化对象,在 Desktop 中,点击“格式”>“交互”,选择“编辑交互”。

针对现在选中的筛选条件,对每个可视化对象进行设置:

如果需要响应该筛选,则选择“筛选”图标如果不希望被筛选,则选择“不起作用”图标"突出显示"与上面的筛选功能相比,最大的优点就是不仅被筛选出来,还可以保留其余数据点的上下文参考

1、干货合辑 | 最全的PowerBI教程,都在这里了

2、干货 | 无需企业邮箱,免费可发布到Web的Power BI账户注册秘籍

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。