Power BI
2019-06-20 17:37:54 4 举报
AI智能生成
Power BI数据分析及可视化简述
作者其他创作
大纲/内容
数据分析步骤
1. Power Query
数据查询、清洗
与数据源直接对接
数据源
从网页中提取
“获取数据”-->“从Web”
仅限网页数据的格式为表格
从数据库
数据清洗
汇总文件夹中的数据
“获取数据”-->“文件夹”-->合并
“转换”选项卡
将第一行用作标题
筛选
删除列
删除重复项
修改数据类型
单击字段左侧
“检测数据类型”可自动识别
替换
“单元格匹配”:必须满足整个单元格中的值一样
填充
向上
向下
移动列
拖动
拆分列
重命名列
双击列名称
提取
格式修整
剔除空格
所有“应用的步骤”可删除、重新设置、移动互换顺序
逆透视
二维表 --> 一维表
选中要做逆透视的列-->点击“逆透视”
转置
行列互换
反转行
将最后一行变为第一行
对行进行计数
分组依据
“添加列”选项卡
条件列(与If函数嵌套类似)
索引列
添加一个从0或者1开头的序号列
重复列
复制一个列
数字计算
日期
提取出年份、月份等
示例中的列
写出一个示例答案,余下则可自动填充
仅支持文本和日期格式
自定义列
追加与合并查询
追加查询
把多张表纵向地汇总到一起
合并查询
横向地汇总多张表 --> 表的扁平化
类似Vlookup
需要两张表之间有相互关联的字段
联接种类
左外部:以左侧的表为中心来合并匹配(未匹配上的也保留)
右外部:以右侧的表为中心来合并匹配(未匹配上的会自动添加行在最后)
完全外部:两张表匹配的并集(未匹配上的会保留及自动添加)
内部:仅保留匹配的行
左反:找到左侧表中没有匹配的行
右反:找到右侧表中没有匹配的行
合并文件
2. Power Pivot
数据建模、分析
关系
Lookup表/维度表
包含类别属性
放于上方
一般在行、列、筛选器、切片器
数据表/事实表
度量值信息
数据量大
Lookup表中的类别信息在此重复出现
(Lookup表)一 对 多(数据表)
建立关系
在“一”端拖动字段覆盖到“多”端上
“开始”选项卡-->“管理关系”
“一”端标记为“1”,“多”端标记为“*”
矩阵表中,行、列来源于Lookup表,不来源于数据表
度量值
Power BI公式语言:DAX (Data Analysis Expression)
可以直接引用某张表中某列的名称
输出的是一个计算结果
DAX语言
Data Analysis Expression 数据分析表达式
公式语言
数据类型
书写规则
直接引用列名称或重复引用其他度量值名称
例:度量值=CALCULATE([销售量],'产品表'[咖啡种类]="拿铁")
用单引号 ' 引用表,用中括号 [] 表示度量值或列
引用列:必须使用限定列 --> 明确所引用的是哪张表中的哪一列
引用度量值:不需要限定哪张表
换行:Shift+Enter 或 Alt+Enter
逻辑运算符
And:&&
Or: ||
函数公式
聚合函数 - 计算
Sum
例:[销售量]=Sum('销售数据表'[数量])
Average
例:[平均销售量]=Average('销售数据表'[数量])
Max
例:[最大销售量]=Max('销售数据表'[数量])
Min
例:[最小销售量]=Min('销售数据表'[数量])
Count
Countrows:求行的个数
CountA:计算列中单元格不为空的数目
Countblank:计算列中单元格为空白的数量
例:[订单数量]=Countrows('销售数据表')
Distinctcount
不重复计数
例:[门店数量]=Distinctcount('销售数据表'[门店])
Calculate函数
Calculate函数自带的筛选条件可以更改和覆盖初始的筛选条件
语法:Calculate(计算值,条件1,条件2,...)
例:拿铁中杯销售量=calculate([销售量],'产品表'[咖啡种类]="拿铁",'产品表'[杯型]="中")
表示“或”的并列条件
In函数+大括号
表示相反:Not in + 大括号
All函数
删除,扩大筛选条件范围
返回结果是表,需要配合calculate和countrows等可引用表的函数使用
例:All销售量=calculate([销售量],all('销售数据表'))
可以引用表,也可以引用列
必须保证All函数所清除的筛选列和初始筛选条件中的筛选列是同一张表同一列
所有引用列参数必须来自同一张表
若需引用多张表:All(), All(), All(), ...
多用于计算占比
Allexcept:除指定的某列之外,清除筛选条件
Allselected:清除所有显示的筛选条件;多用统计直观合计
Filter函数
筛选器函数,返回的结果是一张表
语法:FILTER('表',筛选条件')
常用句型
Filter ('表','表'[列]=公式)
Filter ('表','表'[列]=[度量值])
可设定筛选条件范围大于calculate函数
例:Filter销售量=calculate([销售量],filter('门店信息表',[销售量]>200))
尽量在Lookup表中使用
能用Calculate解决的一定不要使用Filter函数(计算量大)
Divide函数
语法:Divide (分子,分母)
安全除法:在分母为0时防止出现报错
“/”分母为0时结果为∞;Divide分母为0时结果为空值(可选)
图表会默认隐藏空值
If函数
语法:If (判断true,则,否则)
“否则”可省略
关系函数
Related
类似Vlookup
用于从“多”端匹配“一”端
例:产品名称=related('产品表'[产品名称])
例:收入=[数量]*related('产品表'[价格])
以表关联作为基础
Relatedtable
用于从“一”端匹配“多”端
返回的不是唯一值 --> 使用聚合运算
例:订单数量=countrows(relatedtable('销售数据表'))
Lookupvalue
可以对同时符合多个条件进行查询
可用于无关联的表
语法:Lookupvalue(目标输出结果列, 目标表中搜索的范围1, 资料表中的关联字段1, 目标表中搜索的范围2, 资料表中的关联字段2, ...)
例:Lookupvalue('产品表'[价格],'产品表'[咖啡种类],'销售数据表'[咖啡种类],'产品表'[杯型],'销售数据表'[杯型])
时间智能函数
要先有一张日历表
Date,年,月,周,年月,年周,星期几,季度,年季度
日历表排序
可在“添加日期列”添加辅助列
“表格”视图-选择某列-“按列排序”-选择按辅助列排序
定制日历表
给定制日历表添加一个不重复的ID列,同时保留标准日历表,按定制日历表ID给标准日历表设定ID
时间段函数
返回的都是一张表
DatesYtd
本年至今累计
语法:Datesytd('日历表'[日期], 截止日期(可选))
同理有Datesqtd(本季度累计)、Datesmtd(本月累计)
DateAdd
按照指定的间隔返回一个时间区间
语法:Dateadd('日历表'[日期列],间隔,间隔类型)
例:Dateadd('日历表'[日期], -1, year) --> 返回上一年的时间区间
可以以年、月、日为间隔单位
负数为往前朝向历史,正数为往后朝向未来
SamePeriodLastYear
与上年同期
与Dateadd('日历表'[日期], -1, year)运算结果相同
Previousmonth(day/quarter/year)
上一个月(日/季度/年)
返回的是完整的时间段
可能扩大原有上下文
Nextmonth(day/quarter/year)
下一个月(日/季度/年)
Datesbetween
指定开始和结束日期之间的时间段
语法:Datesbetween('日历表'[日期列], 开始日期, 结束日期)
Datesinperiod
根据某一时间节点来调整时间区间
语法:Datesinperiod('日历表'[日期列], 开始日期, 间隔, 间隔类型)
例:Datesinperiod('日历表'[日期],"2015-01-01",1,month) --> 以2015-01-01为起点,向后数1个月
时间点函数
用于指定某一个特定日期
返回一个有唯一值的表,这个值是某一个日期
Firstdate/Lastdate
求最早的日期
在引用列时,等于Min('日历表'[日期])
可以引用表(Min不可以)
例:度量值=Firstdate(All('日历表'[日期])
Endofmonth (quarter/year)
返回本月(季度/年)的最后一天
Startofmonth (quarter/year)
计算类函数
Values函数
返回由一列构成的一个表,该表包含来自指定表或列的非重复值
Hasonevalue函数
判断是否只有一个值
返回“真”或“假”
X类函数
行上下文函数
SumX
先计算,后对所有计算结果求和
例:销售额=SumX('销售数据表',[价格]*[数量])
对显示的数据求总计:SumX(Values('表'[列]),[度量值])
RankX函数
通过度量值输出排名
语法:RankX('表',算术表达式,值,顺序0或1,排序方法)
例:销售量排名=rankx(all('门店信息表'),[销售量])
排序方法
Skip(默认):并列时下一名跳过
Dense:并列时下一名紧接上一个名次数字
TopN函数
返回前N行的表
语法:TopN(前几名,想要提取的表,排序依据的度量值,升序/降序)
上下文
筛选上下文
针对列(竖向)
行上下文
针对行(横向)
行上下文不会自动转换成筛选上下文 --> 如果需要转换,必须用Calculate函数
所有的度量值都自带Calculate函数的功能
分组
方法1:编辑查询器-添加列-条件列
方法2:IF、Switch函数
方法3:柱形图上直接选择分组
选择柱子 - 右键 - 分组 - 编辑组 - 修改名称
方法4:列上右键 - 新建组
辅助表
不与任何表关联
通常用于切片器输入
“建模”选项卡 - “新建参数”
3. Power View
数据可视化
一般将数据的类别放入轴和图例中,将度量值放入值中
列序列:把列值按照某一分类分开
选中图表-->“可视化面板”-->“分析”中,可添加辅助线(平均、最大、最小等)
“Column by”&“Row by”:可按照不同类别把图表分开
筛选器
视觉级
针对所选中的可视化对象
页面级
针对该文件中不同页面
报告级
针对整个PBI文件
切片器
可视化对象
多种显示方式:时间轴、列表、下拉等
钻取
添加层次结构(如日期中添加季度、月份)
单击图表上的“钻取”按钮可以实现层次钻取功能
交互式分析
选取某个图表上某个字段,其余图表自动高亮该字段数据
编辑交互
筛选:只显示该字段数据
突出显示:即高亮显示该字段数据
无:取消交互效果
分享报告
“发布”:将数据报告上传到Power BI服务中
在Power BI服务中,选中该报表-->“文件”-->“发布到Web”:可生成一个超链接供任何人以网页形式访问数据报告
<iframe>代码:可以嵌入电子邮件或网站中,直接在页面上查看该数据报告
快速见解
Power BI服务-->数据集-->快速见解
一系列分析图表将会自动生成
以问题生成报表
选择报表-->固定活动页面-->生成仪表盘
方法论
BI=数据 x 业务
数据
类别
度量值
数据分析:用分类和比较的方法来回答问题(What, Why, How)
比较
不同类别同一度量值 --> 99%
同一类别不同度量值 --> 1%
可视化原则
有没有回答读者想要知道的问题?
读者是否需要做算术题?
视觉冲击力、精确程度、数据丰富度
0 条评论
下一页