[学习笔记]PowerBI数据分析与可视化-B站数据大白

参考资料

B站视频-Power BI 数据分析与可视化

前言

原视频中可能的勘误在笔记中有修改。Ctrl+F搜索“勘误”两个字可以快速定位到勘误。
原视频中可能的差异在笔记中有提及。Ctrl+F搜索“差异”两个字可以快速定位到勘误。

2. 建模与DAX函数

2.01 建立关系模型

在这里插入图片描述
表可以分为维度表和事实表
事实表做计算
维度表做筛选
维度表可以放上面
事实表放下面
模型表的关系中的1表示唯一,*表示可以重复
主页选项卡可以点“管理关系”,可以快速对关系进行删除等操作
模型表的关系的箭头表示筛选的方向

2.01.1建立关系时候常见的问题

  • 星型结构(深度是1)
    推荐
  • 雪花结构(深度大于1)
    在这里插入图片描述
    不推荐,可以把产品大类表扁平化到产品类别里面。通过合并查询是可以把两个表变成一个表。
  • 待优化模型1
    在这里插入图片描述
    可以把“订单折扣”中的“折扣金额”内化到“订单信息”表中
  • 待优化模型2
    在这里插入图片描述
    这样会出现问题,通过地理信息表传递到订单表,会有歧义,可能通过店铺信息表,可能通过客户表
    把地理信息表分别内化到客户表和店铺信息表。

2.02 理解Power BI核心-度量值

可以新建度量值
[度量值]可以直接引用现成的度量值

  • 计数函数
    count:忽略文本的计数
    counta:不忽略文本的计数
    distinctcount:非重复计数

  • 可以把度量值放在度量值表:
    在主页选项卡点击输入数据,名称为“1 度量值表”,点加载。
    然后点击度量值,在度量工具里面,将主表变更为“1 度量值表”(取这个名字是为了使这个表排最上面,表排序按字符排序)

度量值在哪个表都不影响计算

2.03 最强大的函数CALCULATE

在可视化对象-矩阵里面,行是筛选,值是计算。筛选和计算是分开的。
而CALCULATE函数则既可以筛选,也可以做计算。
语法为

度量值 = CALCULATE(表达式, [筛选器1], ....)
如北区销售额=CALCULATE(SUM('订单信息'[金额]), '客户信息'[区域]=“北区”)

如果矩阵和度量值公式里都有筛选,且两个筛选冲突,则以公式的为准。如果不冲突,则叠加。

2.04 时间智能系列-DATEADD、TOTALYTD函数

本节计算同比、环比、累计、年累计同比。

  • 同比
    (当月销售额-去年当月销售额)/去年当月销售额
# 先计算度量值:去年同期
# 专门做日期推移的函数:DATEADD(Dates, NumberOfIntervals, Interval)
去年同期 = CALCULATE([销售额], DATEADD('日历'[日期], -1, year))
# 再计算同比
# 用/来做除法,如果分母为0,结果会为无穷大。
# 用divide来做除法, 如果分母为0,结果会显示为空。
同比 = divide([销售额]-[去年同期], [去年同期])
  • 环比
    (当月销售额-上个月销售额)/上个月销售额
环比 = DIVIDE([销售额]-CALCULATE([销售额], DATEADD('日历'[日期], -1,MONTH)), CALCULATE([销售额], DATEADD('日历'[日期], -1,MONTH)))
  • 年累计销售额
    该年度第一天到这一天的销售额总和
# TOTALYTD是按年计算累计,每一年是独立的,即月的累计只会考虑当年的月
# TOTALQTD是按季计算累计
# TOTALMTD是按月计算累计
# TOTALYTD(表达式,Dates, [筛选器], [YearEndDate]:在应用指定的筛选器后,针对从该年度的第一天开始到指定日期中的最后日期结束的间隔,计算指定的表达式的值)
年累计 = TOTALYTD([销售额],'日历'[日期])
  • 年累计同比
    (当月年累计-去年当月年累计)/去年当月年累计
去年同期年累计 = CALCULATE([年累计], DATEADD('日历'[日期], -1,year))
年累计同比 = DIVIDE([年累计]-[去年同期年累计],[去年同期年累计])

2.05 计算移动平均-DATEINPERIOD函数

本节计算“前3个月销售额”和“3个月移动平均”。
单纯按月看销售额,波动较大,不容易看出趋势。移动平均则波动没那么明显,更容易看出趋势。

  • 3个月的移动平均
    往前推3个月的销售额的总和/月份数(不足则按实际月份数量计数)
# 先计算度量值:前3个月销售额
# 专门求日期区间的函数:DATEINPERIOD(Dates, StartDate, NumberOfIntervals, Interval)
前3个月销售额 = CALCULATE([销售额],DATESINPERIOD('日历'[日期],  MAX('日历'[日期]), -3, MONTH))
# 计算3个月移动平均
3个月移动平均 = DIVIDE([前3个月销售额], CALCULATE(DISTINCTCOUNT('日历'[年月]), DATESINPERIOD('日历'[日期], MAX('日历'[日期]), -3, MONTH)))

可以对公式做格式化对齐,帮助理解

  • 转化为折线图
    直接转化为折线图,格式是错误的。在可视化下面的“设置视图对象格式”中选择“视觉对象”,将x轴改为类别,而不是连续。
    默认是降序排列的,在图表右上角点击“更多选项”,选择排序的轴为年月。并选择升序排列。

2.06 一个可以清除筛选的函数-ALL()函数

本节计算“总销售额”、“总占比”和“日期直观占比”。

  • 总占比
    总占比=某个产品类别某个区域的销售额/总销售额
# 先计算度量值:总销售额
# 用于清除筛选条件的函数:ALL([TableNameOrColumnName], [ColumnName1], ...)
# 可以清除引用表的所有筛选,或者引用列的所有筛选
总销售额 = CALCULATE([销售额],ALL('订单信息'))
# 计算总占比
总占比 = DIVIDE([销售额],[总销售额])
  • 日期直观占比
    在总占比的基础上,我们希望加入日期切片器(对日期进行筛选)。但上面求总销售额筛选也会将筛选的日期也清除。因此我们需要更精细化清除的筛选(只清除客户信息表里面的区域列和产品信息表里面的产品类别列)
    日期直观占比 = 某个产品类别某个区域的销售额/总销售额 (日期切片器中修改日期范围会对日期进行筛选)
# 先计算度量值:所有区域和类别
所有区域和类别 = CALCULATE([销售额], ALL('客户信息'[区域]), ALL('产品信息'[产品类别]))
# 再计算日期直观占比
日期直观占比 = DIVIDE([销售额],[所有区域和类别])

如果清除的筛选列在同一个表,可以写在一个ALL函数里面
否则应该写多个ALL函数
以下是错误示范

在这里插入图片描述

2.07 直观占比分析-ALLSELECTED函数

如果继续添加“关于区域的切片器”和“关于产品类别的切片器”。而且我们希望切片器的筛选仍然有效,矩阵的筛选无效。则使用上面的公式是做不到的。因为

所有区域和类别 = CALCULATE([销售额], ALL('客户信息'[区域]), ALL('产品信息'[产品类别]))

不仅会把矩阵的筛选去掉,还会把切片器的筛选去掉。
要实现我们的需求,需要用到ALLSELECTED函数

# 先计算度量值:清除行列筛选
# 用于仅清除视觉对象-矩阵中的筛选,而不清除外部筛选器的函数:ALLSELECTED([TableNameOrColumnName], [Column])
清除行列筛选 = CALCULATE([销售额], ALLSELECTED('客户信息'[区域]), ALLSELECTED('产品信息'[产品类别]))
# 再计算直观占比
直观占比 = DIVIDE([销售额],[清除行列筛选])

2.08 分类占比分析-ISFILTERED函数

在视觉对象-矩阵中,添加一级类:产品类别,二级类:产品。
分类占比是指:
产品的占比=产品的销售额/该产品所在产品类别的销售额
产品类别的占比=产品类别的销售额/总销售额

# 用于判断筛选级别的函数:ISFILTERED(TableNameOrColumnName)
分类占比 = DIVIDE([销售额],IF(ISFILTERED('产品信息'[产品]), CALCULATE([销售额],ALL('产品信息'[产品])), CALCULATE([销售额],ALL('产品信息'[产品类别]))))
# 为了使外部切片器的筛选保留,需要将两个ALL函数改为ALLSELECTED函数
分类占比 = DIVIDE([销售额],IF(ISFILTERED('产品信息'[产品]), CALCULATE([销售额],ALLSELECTED('产品信息'[产品])), CALCULATE([销售额],ALLSELECTED('产品信息'[产品类别]))))

2.09 强大的筛选函数-FILTER函数

前面提到的calculate函数中的筛选比较简单,只能做基于某个字段的筛选。
FILTER函数是专门做筛选的函数。

  • 用FILTER函数实现前面的度量值”北区销售额“
# 专用于筛选的函数:FILTER(表, FilterExpression)
# 将之前写的北区销售额公式也放过来做比较
北区销售额=CALCULATE([销售额], '客户信息'[区域]=“北区”)
北区销售额2 = CALCULATE([销售额],FILTER('客户信息', '客户信息'[区域]="北区"))

返回的结果为
在这里插入图片描述
以“东区”行的“北区销售额2”列的值的计算流程进行分析:
1.经过行的筛选,只剩下东区的客户了。
2.FILTER(‘客户信息’, ‘客户信息’[区域]=“北区”)说明在已经筛选完的”客户信息“表中继续筛选"北区"客户,由于没有交叉,所以为空表。

PowerBI中,如果某个度量值是空的,则它默认对应的维度也是不会显示的。

在这里插入图片描述
如果希望”北区销售额2“实现和”北区销售额“一样的效果,则修改FILTER的表参数,用ALL函数清除在客户信息表上的筛选

北区销售额2 = CALCULATE([销售额],FILTER(ALL('客户信息'), '客户信息'[区域]="北区"))
  • 销售额大于5千万的客户数
销售额大于5千万的客户数 = CALCULATE([客户数], FILTER('客户信息', [销售额]>50000000))

FILTER是一个迭代函数,会逐行进行判断

  • 销售额大于2千万的月份
# FILTER的第一个参数必须是一个表,这里要求销售额大于2千万的月份,必须是包含不重复年月信息的表,但我们没有现成的表
# 用于”对某个表的某一个列去重,生成一个新的表“的函数:VALUES(TableNameOrColumnName)
销售额大于2千万的月数 = CALCULATE(DISTINCTCOUNT('日历'[年月]), FILTER(VALUES('日历'[年月]), [销售额]>20000000))

filter表是对参数1中的表进行逐行筛选,所以筛选的字段一定来自参数1中的表。

2.10 SUMX类函数

2.10.1 优化上一节的”销售额大于2千万的月数销售额“,总计变为直观总计

# 略微修改上一节的函数可以得到
销售额大于2千万的月数销售额 = CALCULATE([销售额], FILTER(VALUES('日历'[年月]), [销售额]>20000000))

但这样会存在一个问题,汇总的总计显示会异常(不是度量值直观的汇总):
在这里插入图片描述
产生这样的原因是:"总计"行是不筛选”区域“的,所以表达的含义是”考虑所有区域的每月销售额总和,考虑销售额大于2千万的月数和销售额大于2千万的月数销售额”。

但我们希望总计是这一列度量值的直观汇总。此时有三种方法可以处理总计:

  • 方法1:屏蔽总计
# 利用总计没有经过区域的筛选来屏蔽总计
# 使用IF+ISFILTERED+BLANK函数
销售额大于2千万的月数销售额2 = if(ISFILTERED('客户信息'[区域]), CALCULATE([销售额], FILTER(VALUES('日历'[年月]), [销售额]>20000000)), BLANK())
# IF的第三个参数默认为空,BLANK()也表示空。所以这里的BLANK()可填可不填

但这种方法有一个问题,当使用”选择区域进行筛选的切片器“时,则powerbi认为总计经过了区域的筛选,于是还是会显示总计

# 利用总计没有经过在区域列内来屏蔽总计
# 使用IF+ISINSCOPE+BLANK函数
销售额大于2千万的月数销售额2 = IF(ISINSCOPE('客户信息'[区域]), CALCULATE([销售额], FILTER(VALUES('日历'[年月]), [销售额]>20000000)), BLANK())
  • 方法2:设置不显示总计
    选中矩阵,在”设置视觉对象格式“里,找到”行小计“,将右侧的勾去掉就可以了
  • 方法3:总计显示直观汇总-使用SUMX函数
# SUMX(表, 表达式)
销售额大于2千万的月数销售额3 = SUMX(VALUES('客户信息'[区域]), [销售额大于2千万的月数销售额])
# 先逐行迭代第一个表参数的行,并计算相应的度量值[销售额大于2千万的月数销售额]
# 然后再进行求和
销售额大于2千万的月数销售额3 = SUMX(VALUES('客户信息'[区域]), [销售额大于2千万的月数销售额])

流程分析

  1. 行筛选:先进行行的筛选,如"东区"
  2. 表:然后在1的基础上,根据VALUES函数获得新的表,它是只有一行"东区"的表
  3. 在表中增加一列:对2中的表逐行迭代,计算对应的"[销售额大于2千万的月数销售额]"
  4. 对新增的列求和:对3中的得到的结果求和

这个流程对总计也是一样的。

”行总计“本质上相当于清除了所有行筛选后进行度量值计算
SUMX也是迭代函数
与SUMX类似的还有AVERAGEX,MAXX等迭代函数。它们的区别主要在上面的流程分析的第四步。

2.10.2 优化上一节的”销售额大于5千万的客户数“,将总计变为平均

# 应用AVERAGEX函数
销售额大于5千万的客户数2 = AVERAGEX(values('客户信息'[区域]), [销售额大于5千万的客户数])

2.11 排名分析-rankx和topn函数

  • 产品的销售额排名
# 用于计算排名的迭代函数:RANKX(表, 表达式, [值], [Order], [Ties])
排名 = RANKX(all('产品信息'), [销售额], [销售额], DESC, Dense)
# 去掉总计版本
排名 = IF(ISINSCOPE('产品信息'[产品]), RANKX(all('产品信息'), [销售额], [销售额], DESC, Dense))

流程分析:

  1. 行筛选:先进行行的筛选,如产品"电脑-Y2"
  2. 表:然后经过ALL(”产品信息“)后会清除行筛选,得到表
  3. 在表中增加一列:对2中的表逐行迭代,计算对应的"[销售额]",这样得到了一张参考表
  4. 用于比较的值:不指定的情况下,默认是第二参数。这里就是[销售额],而且是带外部上下文的。也就是这里表示的是"电脑-Y2"的销售额。
  5. Order-排名的方式:是升序还是降序的,默认以降序排列
  6. Ties-排名的方式:是紧凑(Dense)还是跳跃(Skip)的,默认是跳跃的
  7. 返回用于比较的值在参考表的排名

推荐阅读:详解RANKX函数-知乎-BI罗
勘误:视频3分47秒处老师有口误。Ties
下面是测试Ties默认参数的图。
在这里插入图片描述

  • 产品在产品类别中的销售额排名-组内排名
    在矩阵中添加行索引:“产品类别”,“产品”,可以得到含多层索引的矩阵。
    默认是压缩式的布局(产品和产品类别在一列中显示),如下图。
    在这里插入图片描述
    可以通过“设置视觉对象格式”中的“行标题”的“选项”中,将“渐变布局”右边的勾去掉,就可以得到表格式的布局了。
    在这里插入图片描述
排名(组内) = RANKX(all('产品信息'[产品]), [销售额], [销售额], DESC, Dense)

流程分析:

  1. 行筛选:先进行行的筛选,如产品类型“手机”,产品"手机-X3"
  2. 表:然后经过all(‘产品信息’[产品])后会清除对产品"手机-X3"的筛选,只剩下对产品类型“手机”的筛选,得到表2
  3. 在表中增加一列:对表2逐行迭代,计算对应的"[销售额]",这样得到了一张参考表
  4. 用于比较的值:带上外部上下文的值,即产品类型为“手机”,产品为"手机-X3"的销售额。
  5. 返回用于比较的值在参考表的排名
  • 每个月前几名客户的销售
    用之前的calculate+filter函数也可以求(筛选排名小于等于5的),但是比较麻烦。
    下面介绍TOPN函数。
# 专门用于筛选前几名的函数:TOPN(N_Value, 表, [OrderBy_Expression1], [Order1], ...)
前5名客户销售额 = CALCULATE([销售额], TOPN(5, '客户信息', [销售额]))
前5名客户销售额占比 = DIVIDE([前5名客户销售额], [销售额])
  • 将"销售额"和“前5名客户销售额占比”变为“折线和簇状柱形图”
    在这里插入图片描述

2.12 在Excel中使用Power BI功能

  • 数据查询编辑器
    在”数据选项卡“的”获取数据“中。

  • 建模分析功能-Power Pivot
    用于建立关系和写度量值

    • 如何添加Power Pivot选项卡
      右键开始选项卡,点击”自定义功能区“,点击”加载项“,点击”COM 加载项“,然后点”转到“,然后勾选上”Microsoft Power Pivot for Excel“,点击确定。
      在这里插入图片描述
  • 获取数据
    在”数据选项卡“的”获取数据“中,选择”获取数据“,”来自文件“,”从Excel工作簿“。
    选择”转换数据“后,进入Power Query编辑器,对数据类型修改后,点击”关闭并上载“或”关闭并上载至“

    • ”关闭并上载“会将数据上载到工作表里面
    • ”关闭并上载至“可以将数据上载到”仅创建链接“,并勾选”将此数据添加到数据模型“(一般要分析采用这个)
      在这里插入图片描述
  • 点击"Power Pivot"选项卡的”管理“选项
    写度量值稍微有点区别,需要在等号前面加一个英文冒号,如

销售额:=sum(订单信息'[金额])

2.13 Excel中强大的多维数据集函数-CUBEVALUE函数

在Excel中可以使用模型中的数据,非常灵活。但是外观会受到透视表限制。
为了使外观可以更加灵活,可以选择“透视表”,然后点击“数据透视表分析”选项卡,再点击“OLAP工具“,再点击"转换为公式"。此时透视表的值都变成了CUBEVALUE计算公式得到的值。

# 专用于多维数据集的函数:CUBEVALUE(connection, [member_expression1], [member_expression2], ...)
# 它可以引用模型里的数据和度量值,也可以使用切片器
CUBEVALUE(”模型名称“, "[客户信息].[区域].[All].[北区]", "[产品信息].[产品类别].[All].[电脑]", "[Measures].[销售额]", "切片器_年", "切片器_月")
# 注意必须用双引号
# Measures引用的是度量值
# 最后可以加上使用的切片器,切片器的名字可以通过右键切片器,点击”切片器设置“查看。

3.可视化

3.01 对比分析场景图表制作与钻取交互

对比分析场景:哪一些产品类别卖的好,哪一些产品类别卖的不好。
答:可以使用条形图(视觉对象第3个)或者柱形图(视觉对象第4个)来表达。这里以柱形图为例。

3.01.1 图表制作

  1. 点击柱形图,X轴拖入产品类别,Y轴拖入销量
  2. 进行增删改。增:添加缺失的关键信息:如数据标签;删:删除冗余操作:如Y轴标题,Y轴标签;改:调整信息:如标题名称可以修改为数据能支撑的结论
  • 颜色调整
    截图软件也可以获得颜色的RGB值
    可以通过将默认颜色设置成同一色系的浅色(或灰色),要突出的字段的颜色设置成深色来进行突出
    颜色模式除了RGB,还有HSL模式:色调(U),饱和度(S),亮度(L)
    可以通过调整亮度来获得同一色系的浅色或者深色的颜色
    可以在”设置视觉对象格式“中直接搜索”颜色“来快速查看要设置的颜色格式

  • 添加恒定线、平均值线等
    点击”可视化模块“里面的第三个:”向视觉对象添加进一步分析“,可以添加恒定线(标准线)或者平均值线(用的比较多)等。
    在这里插入图片描述

3.01.2 钻取交互

点击”可视化模块“里面的第一个:”将数据添加到视觉对象“,将低级别的”产品“字段拖动到X轴的”产品类别“下面。此时柱形图右上角会出现向下钻取的按钮。点击柱形图右上角的向下钻取的按钮。
在这里插入图片描述
再去点击某个柱子,就可以进行向下钻取。

3.02 趋势分析场景图表制作

场景:想看每个月销售额的趋势情况
答:可以通过折线图(视觉对象第2排第1个)或者分区图(视觉对象第2排第2个)来实现。这里以折线图为例。

3.02.1 图表制作

点击折线图,X轴拖入[日历]月,Y轴拖入销售额(修改排序)

默认按照字符先后顺序排序,所以可能10月,11月,12月会在1月前面,此时数据视图找到日历表,选中列工具的按列排序,按照月编号排序。
将年放到图例可以将两年的数据分成两条折线图,用于对比
也可以把年放在X轴月的上面,然后钻取或者展开
展开后的X轴轴标签可能顺序不正确,可以先改为降序,再改回升序使顺序正常
展开后X轴的轴标签会带上上一层级的标签,如”2019 1月“,可以通过不勾选视觉对象的”连接标签“使得不带上一层级的标签

3.02.2 组合图

组合图是指同一个图有两个不同指标。一般使用”折线和簇状柱形图“(视觉对象第2排第5个)来表示。
点击”折线和簇状柱形图“,X轴拖入年和月,列Y轴拖入销售额,行Y轴拖入毛利率,然后点击展开

为了方便阅读,最好将轴标签颜色和图形的颜色对应。

在这里插入图片描述

3.03 占比分析场景图制作

场景:想看哪个区域更加重要。
答:可以通过饼图(视觉对象第3排第4个)或者环形图(视觉对象第3排第5个)来实现。更推荐环形图,更好看,这里以环形图为例。

3.03.1 环形图

点击环形图,图例中拖入区域,值中拖入销售额

用图例标识的缺点是,在类别较多的情况下无法看清楚。所以一般,在视觉对象格式中将图例取消勾选,然后在详细信息标签中,标签内容改为”类别,总百分比“

在这里插入图片描述

3.03.2 树状图

类别超过6种就不适合用饼图或者环形图来展示了。此时适合用树状图。
可以通过格式-颜色-高级控件,使树状图的颜色达到渐变的效果。
在这里插入图片描述
可以通过将区域放入类别,省份放入详细信息,销售额放入值,得到含层级划分的树状图。
在这里插入图片描述

3.03.3 堆积图(堆积条形图、堆积柱形图、堆积面积图、百分比堆积柱)

  • 堆积的柱形图
X轴:年、季度
Y轴:销售额
图例:区域

在这里插入图片描述

  • 百分比堆积柱形图(用的最多)
    在这里插入图片描述

3.03.4 瀑布图

想知道总销售额由哪几块组成。可以用瀑布图(第3排第1个)

类别:产品类别
Y轴:销售额

在这里插入图片描述
瀑布图也可以用来解释增长或者下降

类别:年
细目:区域
Y轴:销售额

在这里插入图片描述

3.03.5 分解树

分解树(第6排第1个)也可以解释组成,它在做演示的时候非常有用。

分析:销售额
解释依据:区域、年、产品类别

在这里插入图片描述

3.04 关联分析场景图表制作

场景:想看一下哪一些产品即好卖,又比较赚钱,这些产品就可以放在人流量比较大的地方。
答:这就需要用到两个指标关联了,用到的图为散点图(第3排第3个)。

3.04.1 散点图

值:产品类别
X轴:销量
Y轴:毛利率
勾选类别标签
添加2条平均值线(一条的数据系列是“销量”,一条的数据系列是“毛利率”)
大小:销售额   # 这样散点的大小就会根据销售额大小变化

如果把“产品类别”从“值”拖动到“图例”中,则可以用颜色来区分不同的类别。
除了可以用切片器加上年月的切片以外,也可以把“日历[年月]”拖到播放轴。
播放的时候点一下散点,可以看到散点移动的轨迹。按Ctrl可以同时选中多个。

在这里插入图片描述

3.05 分布分析场景图表制作

场景:想看看每个省份销售的情况
答:用地球图(第4行第1个)

3.05.1 地球图

位置:省份
图例:区域
气泡大小:销售额
勾选类别标签

三个原因可能导致地球图无法显示:1.没有联网 2.powerbi是英文版的,但数据是中文省份 3.安全性(可以在文件选项里设置)

在这里插入图片描述

  • 热力地图
    将上面的普通地球图转换为热力地图。

因为地球图的图例和热力图都是靠颜色进行区分的,必须先删除地球图的图例,才能进行转化。
热力图适合位置特别多的场景。

在这里插入图片描述

3.05.2 着色地图

着色地图(第4排第2个)是用色块标识区域。

位置:省份
格式中的填充颜色,选择条件格式,选择基于“销售额”的“渐变”的填充颜色。

3.05.3 层次分布的图表绘制

对于年龄层次的分布,购买数量的分布,可以先新建组,按照规则划分层次。然后再绘制图表。
步骤:

  1. 在数据视图找到订单信息表的订单数量列,右键“新增组”,然后选择“装箱大小”为20。这样就会以20的箱大小间隔得到一个新的分组“订单数量(箱)”
    在这里插入图片描述
  2. 添加簇状柱形图,X轴拖入“订单数量(箱)”,Y轴拖入“次数”。

为了统计某订单数量-箱对应的数量(行的数量),引入度量值“次数=Countrows(‘订单信息’)”

  1. 可以在数据视图中,找到订单数量(箱),然后修改格式为">0",如excel中一样,0表示占位符。

也可以将柱形图转换为分区图。

3.06 切片器场景应用

3.06.1 三种切片器

  • 文本型切片器

可以在切片器设置里修改样式:垂直列表、磁贴、下拉

在这里插入图片描述

  • 数值型切片器
  • 日期型切片器

可以点开筛选器,在视觉对象或者在此页上或者在所有页面上添加数据字段进行筛选。

3.06.2 切片器控制其他页

选中要同步的切片器,然后点击视图,再点击同步切片器。可以对要同步的页进行勾选。
在这里插入图片描述

左边是同步列,右边是显示列。
这样就可以把所有切片器放在首页,而不在其他页展示。

3.07 指导业务决策:What-If分析

3.07.1 卡片图

显示单个度量值(关键指标)常用卡片图(第4排第4个)。
在这里插入图片描述

3.07.2 新建数值表

要新建数值表可以通过建表导入的方式。
也可以通过在“建模”选项卡中,点击“新建参数”,下拉”数值范围“,填好参数后,然后点确定。会生成一个表、一个切片器和一个受切片器筛选的度量值

3.07.3 优化2.11设计的“前5名客户销售额占比”

利用一个受切片器筛选的度量值可以实现动态获取前N名客户销售额占比的图。
将原来固定值的位置用一个受切片器筛选的度量值替换。

3.07.4 用度量值动态控制标题。

  1. 先构建返回文本类型的度量值,如:动态标题=”前“&[选择数字 值]&"名客户销售额占比"
  2. 然后在图表的格式的常规中的标题中,点击文本中的”fx“。应用”动态标题“字段值。
    在这里插入图片描述

3.08 动态坐标与动态指标

通过在“建模”选项卡中,点击“新建参数”,下拉”字段“,将需要的字段移到左边。会生成一个表、一个切片器和一个受切片器筛选的度量值
这个度量值可以放在视觉对象的X轴。
这样就可以通过切片器来动态选择坐标轴字段了。

指标也可以类似动态选择。
建议切片器设置为单选。当然多选的情况下,就可以进行数据的钻取。

在这里插入图片描述

3.09 编辑交互效果

3.09.1 通过设置背景色方便排版

点击背景空白处,选择”可视化“中的”设置报表页的格式“,修改画布背景为”浅色“”0“透明度。然后就可以根据红线来进行排版调整了。

3.09.2 筛选器进行筛选

光标放在图表的筛选漏斗上面,它会提示受到哪些筛选。
在这里插入图片描述

3.09.3 编辑交互-利用图表筛选其他图表

点击某个图表,然后点击”格式“选项卡,然后点击”编辑交互“,此时其他图表会出现3个图标。
在这里插入图片描述
从左到右分别表示:筛选器(最常用),突出显示(默认),无(不进行筛选)

设置好编辑交互之后,要再点一下”编辑交互“,退出编辑状态。

3.09.4 锁定对象

点击”视图“选项卡下面的”锁定对象“,这样就不可以拖动视图对象了。这就避免了对视图的误操作。

锁定对象会对整个文件起作用。

3.10 工具提示

光标放在图标上会有提示,但过于简单。
在这里插入图片描述

3.10.1 简单的工具提示-添加字段

选中视图对象,然后点击”将数据添加到视觉对象“选项卡,找到下面的”工具提示“,希望提示的字段可以加入到这里。
在这里插入图片描述

3.10.2 复杂的工具提示-工具提示页

  1. 新建工具提示页:新建一页,然后设置页面格式,再画布设置里选择”工具提示“类型。
    在这里插入图片描述
  2. 设置工具提示页为工具提示:选择要添加工具提示的视图对象,点击”设置视觉对象格式“选项卡,然后选择常规-工具提示,选择刚刚制作的工具提示报表页,此时移动到视觉对象上,会出现报表页类型的工具提示。
    在这里插入图片描述

3.11 报告的跨报表钻取

  1. 新增钻取页:新建一页,创建视图对象,然后在页面视觉对象中的钻取下面添加字段(如区域)。
    在这里插入图片描述

  2. 跨报表钻取:对视图对象的某个字段右键,钻取,并选择钻取页。
    在这里插入图片描述
    这样就会进入到钻取页,同时会把字段传递过来进行筛选。

  3. 按住Ctrl,再点击左箭头。可以返回上一页。
    在这里插入图片描述

3.12 自然语言问与答

3.12.1 问与答-AI

双击页面空白处就可以启用这个功能。或者点击视觉对象中的问与答(第6排第2个)
输入“按 客户 看 销售额”就会显示,注意中间有空格。

直接写“维度 度量”也可以,如“客户 销售额”
可以再加上英文的图表类型来指定绘制的图表类型,如pie,line
在这里插入图片描述

3.12.2 添加同义词

可以在模型中修改字段的属性,为字段赋予同义词,如销量字段可以添加同义词“销售量”(注意逗号隔开)
在这里插入图片描述
这样AI也可以识别销售量为销量了。

3.13 与他人共享:报告的发布与更新

  • 保存文件并发送
    需要对方也有powerbi软件才能打开
  • 会议室演示
    演示时想聚焦某个图表,可以选择“焦点模式”。
    在这里插入图片描述
  • 发布到在线版
    点击主页的"发布",发布前必须注册和登录。
    进入在线版,然后共享到同事的邮箱(会通过邮箱的后缀名了解是否是一个公司的同事)。

高级Pro版本可以设置访问权限设置,不同人看到的内容不一样。而且Pro版本可以定时刷新。
邮箱发送只能发送给同事。也可以选择文件-嵌入报表-发布到Web(公共),这样就会提供一个网址。通过网址就能看到这个报告。

  • 更新
    方法一:主页上刷新,然后再发布。
    方法二:在在线版,点击数据中心,找到数据,并点立即刷新

3.13 在PPT中动态演示Power BI报告

方法一:

  1. 首先必须注册和登录,并发布报告,然后选择文件-嵌入报表-发布到Web(公共),复制嵌入代码。
  2. 然后在PPT里面,选择插入,点加载项,获取加载项,应用商店里面搜:web viewer并添加。
    在这里插入图片描述
  3. 然后将1中的地址粘贴进来,去掉重复的https前缀。

方法二:
在在线版,直接共享到PowerPoint,会自动嵌入PPT。
在这里插入图片描述

4.案例

4.01 财年分析

以某年10月1号到下一年9月30号(勘误)为一个财年。如2019年11月25的财年是2020年,财月是2月。

# 度量值设置
销售额 = SUM('订单信息'[金额])
去年同期(财年) = CALCULATE([销售额], '日历'[财年]= MAX('日历'[财年])-1)  # 差异
# up的写法:去年同期(财年) = CALCULATE([销售额], FILTER(ALL('日历'[财年]), '日历'[财年]=MAX('日历'[财年])-1))
同比%(财年) = DIVIDE([销售额] - [去年同期(财年)], [去年同期(财年)])
上月销售额(财年) = CALCULATE([销售额], FILTER(ALL('日历'), '日历'[财年财月编号] = MAX('日历'[财年财月编号]) -1 ))
环比%(财年) = DIVIDE([销售额]-[上月销售额(财年)], [上月销售额(财年)])
年累计(财年) = TOTALYTD([销售额], '日历'[日期], "9-30")
# 更通用的写法
年累计(财年) 2 = CALCULATE([销售额], FILTER(ALL('日历'), '日历'[财年]=MAX('日历'[财年])&&'日历'[财月编号]<=MAX('日历'[财月编号]))) 

虽然去年同期(财年) = CALCULATE([销售额], ‘日历’[财年]= VALUES(‘日历’[财年])-1)也可以达到效果。但如果行小计是打开的情况下,如果用values函数(values函数此时返回一个表),会导致无法显示视觉对象。

4.02 销售业绩达成分析

场景:有每个月各区域销售额目标的表。要看达成率。

4.02.1 数据处理

# 数据处理
转换-将第一行用作标题
对年字段-右键-向下填充
选中“年”和“区域”字段-右键-逆透视其他列
选中“年”和“月份”字段-右键-合并列-取名”日期“-将该列转换为“日期”格式
将“值”字段重命名为“目标”字段,数据类型改为整数,并添加后缀0000(点击转换-格式-添加后缀),再改为小数类型
修改表名为“目标表”
点击主页-关闭并应用
# 数据处理
# 由于客户信息表和目标表的区域关系是多对多的。所以考虑在目标表增加一列能代表区域的“客户代码”,用于与客户信息表建立关系
在excel中将客户代码和区域列复制,然后对区域列去重

在这里插入图片描述

虽然在模型里也可以添加列,但更规范的是在数据整理这一步来添加。进入主页-转换数据

点击目标表,添加列,条件列,写条件如下图,并将字段名改为“客户代码”,格式改为文本
关闭并应用
然后在模型视图将客户信息的客户代码与目标表的客户代码建立关系

在这里插入图片描述

4.02.2 度量值

4.02.3 更换数据源

4.03 多维收入分析

在这里插入图片描述

4.04 RFM分析

4.04.1 RFM模型的介绍

在这里插入图片描述
在这里插入图片描述

4.04.2 要实现的效果

在这里插入图片描述

4.02.3 度量值

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zhangyifeng_1995/article/details/129692195