PowerBI报表制作保姆级实操全流程 :销售异动分析

2023年 7月 13日 43.7k 0

保姆级的实操教程。跟着操作你能得到一个高频使用的指标拆解(杜邦分析)模板,用于销售异动分析。

初识PowerBI

打开PowerBI后,我们可以看到丰富的操作分区:

  • 功能区:类似于Excel的导航栏,有各种功能,包括导入数据
  • (可视化图表区)图表类型、图表设计:有许多内置的图表,以及图表对应的可视化设计区域
  • 数据字段:导入的数据、新建的度量值等数据字段会显示在这里用于与图表交互
  • 功能页切换:在这里切换到不同的功能页面进行报表设计、数据处理、建模。

PowerBI报表制作保姆级实操全流程 :销售异动分析

业务需求

销售额异动原因分析是常见的业务需求场景,为了让运营能自主完成,此次案例借助杜邦分析法实现指标销售额的拆解,并通过同比指标判断异常原因。

在产品落地层,该BI报表需要便于运营对不同时间段、不同产品类别的销售变动进行原因分析。基于该业务需求,形成了下图中的报表设计页面。

PowerBI报表制作保姆级实操全流程 :销售异动分析为了便于教程中的对应讲解,把画布中的报表设计分成:页面标题区、分析维度区、指标拆解区、经营成效分析区。接下来的内容将逐一完成这些区域的设计。PowerBI报表制作保姆级实操全流程 :销售异动分析

使用场景

按“以终为始”的落地思维,在开始实现报表之前,需要先对产品最终落地的使用场景进行讨论,才能倒推出所需要的功能、数据。

按业务需求,报表需要实现按时间维度及产品维度对销售数据进行分析的功能。

时间维度

如图,在分析维度区中的“分析时间”切片器,筛选2021年1月1日至2021年3月31日。

指标拆解区和经营成效分析区呈现的销售数据就是2021年1季度、2020年1季度及它们之间的同比。

其中,产品类别表现中,呈现的是2021年1季度产品类别的销售数据。

PowerBI报表制作保姆级实操全流程 :销售异动分析

时间×产品维度

如图,在分析维度区中的“分析时间”切片器,筛选2021年1月1日至2021年3月31日,在“产品类别表现”表格中选中办公用品,则指标拆解区和经营成效分析区呈现的就是2021年1季度、2020年1季度的办公用品销售数据及同比。

其中,产品类别表现中,呈现的是2021年1季度办公用品的销售数据。

PowerBI报表制作保姆级实操全流程 :销售异动分析

回到落地场景中,业务会结合产品维度进行分析,但是每次操作时应该看哪个产品类别呢?所以,业务还会需要到产品类别的数据表现,来帮助做初步的判断。

因此,在这里,分析维度区中以”产品类别表现”的表格形式作为产品维度筛选的依据,具体内容是分析产品的销售结构。

明确了业务需求及最终要交付的报表后,就可以着手开始报表制作。

接入数据

首先,需要接入业务数据。

PowerBI提供了丰富的数据源接口,比较常用的是Excel、SQL,可以按需使用。

PowerBI报表制作保姆级实操全流程 :销售异动分析

数据源

在业务需求的讨论中,可以明确所需的业务数据是销售表及产品表。

产品表Model-DimProduct:用于记录不同产品的数据,例如类别、子类别、产品名称、对应的品牌及标签价。其中,spu可以简单理解为产品型号。

PowerBI报表制作保姆级实操全流程 :销售异动分析

销售表Model-FactSales:用于记录客户的订单数据,例如订单ID、订单日期、客户ID、订单对应的产品sku(可以简单理解为产品规格)、产品spu、商品件数及订单金额。

PowerBI报表制作保姆级实操全流程 :销售异动分析

其中,sku是spu是下一级,例如 iphone13 是spu,而不同颜色规格的 iphone 13 black 是sku,还可以是不同容量的 iphone 13 256G。

新建日期表

对于涉及时间分析的场景,需要新建日期表,通过对日期表中时间字段的筛选,计算不同时间段下的销售指标。

切换到“数据”功能页,在功能区中找到表工具-新建表功能。

PowerBI报表制作保姆级实操全流程 :销售异动分析

在代码区输入日期表的通用Dax代码,即可。

日期表 = ------------------------------------------------------------------制作日期表的相关参数,可根据需要修改VAR YearStart = 2020    //起始年度VAR YearEnd = 2023     //结束年度VAR WeekNumberType = 2VAR WeekDayType = 2       -----------------------------------------------------------------RETURNGENERATE (    CALENDAR( DATE( YearStart , 1 , 1 ) , DATE( YearEnd , 12 , 31 ) ),    VAR Year = YEAR ( [Date] )    VAR Month = MONTH ( [Date] )    VAR Quarter = QUARTER( [Date] )    VAR Day = DAY( [Date] )    VAR YearMonth = Year * 100 + Month    VAR Weekday = WEEKDAY( [Date] , WeekDayType )     VAR WeekOfYear = WEEKNUM( [Date] , WeekNumberType )    RETURN ROW (        "年" , Year ,        "季" , Quarter ,        "月" , Month ,        "日" , Day ,        "日期编码" , Year * 10000 + Month * 100 + Day    ))

得到的日期表如图所示。

PowerBI报表制作保姆级实操全流程 :销售异动分析

数据建模

数据准备好后,切换到“模型”功能页,进行数据建模工作。

PowerBI报表制作保姆级实操全流程 :销售异动分析

在业务需求中,我们明确了时间、产品类别的分析维度,因此,结合“维度建模”的方法论,需要以日期表、产品表作为维度表,以销售表作为事实表进行分析,使它们之间形成1对多、单向的表间关系,得到的数据模型如下:

  • 日期表('Model-DimDates'[Date]) → 销售表 ('Model-FactSales'[订单日期])
  • 产品表('Model-DimProduct'[spu]) → 销售表 ('Model-FactSales'[spu])

PowerBI报表制作保姆级实操全流程 :销售异动分析

如何操作?

用鼠标把日期表Model-DimDates中的Date字段,拖拽到销售表 Model-FactSales中的订单日期字段位置,如图所示,松开鼠标即可完成关联。同理需要完成销售表和产品表之间的关联。

PowerBI报表制作保姆级实操全流程 :销售异动分析

新建度量值 | 写Dax

接下来切换到“数据”功能页,开始可视化报表中度量值的准备。

PowerBI报表制作保姆级实操全流程 :销售异动分析

指标拆解区

该区域是此报表中的核心,涉及的指标及公式:

  • 销售额 = 订单数 × 客单价
  • 订单数 = 销量 × 连带率
  • 客单价 = 件单价 × 连带率

其中,连带率衡量的是每次客户购买时的平均商品数量。

接下来逐个分析如何新建度量值。

本期指标

销售额

销售额可以通过把订单表中的金额做累加实现。

销售额 = sum('Model-FactSales'[订单金额])

如何操作?只需在表工具中,点击“新建度量值”,在代码区输入语句即可。

PowerBI报表制作保姆级实操全流程 :销售异动分析PowerBI报表制作保姆级实操全流程 :销售异动分析

订单数

在零售业务中,对订单的处理逻辑需要按日合并,也就是说,假设客户A在2022年6月1日内消费了多笔订单,业务上也认为客户A在2022年6月1日仅消费了一笔。

因此,统计订单数不能直接使用订单ID,需要重新对每笔订单按客户ID和日期做标记,形式是:客户ID+空格+订单日期,这样,对每个客户同一天的多个消费订单都有相同的订单标记。

新建列

选择销售表Model-FactSales,在功能区-表工具中,选择“新建列"。

PowerBI报表制作保姆级实操全流程 :销售异动分析输入订单标记的公式即可。

其中,CONCATENATE是对两个字符串进行拼接,而订单标记有三个字符串,所以应用了两次CONCATENATE。

订单标记 = CONCATENATE(CONCATENATE('Model-FactSales'[客户 Id], " "),                       FORMAT('Model-FactSales'[订单日期],"YYYY-MM-dd"))

PowerBI报表制作保姆级实操全流程 :销售异动分析

订单数计算

此时,通过对订单表中的订单标记字段进行去重计数,就能得到订单数指标。

订单数 = DISTINCTCOUNT ( 'Model-FactSales'[订单标记] )

客单价

DIVIDE是Dax中的除法函数,利用它,基于前面提及的公式:把销售额除以订单数,即可得到客单价指标。

客单价 = DIVIDE ( [销售额], [订单数] )

销量

对订单表中商品件数进行求和即可得到销量指标。

销量 = SUM ( 'Model-FactSales'[商品件数] )

连带率

基于前面提及的公式:把销量除以订单数,即可得到连带率指标。

连带率 = DIVIDE ( [销量], [订单数] )

件单价

基于前面提及的公式:把销售额除以销量,即可得到件单价指标。

件单价 = DIVIDE ( [销售额], [销量] )

同期指标

利用Calculate+时间智能函数SAMEPERIODLASTYEAR,就可以轻松计算同期数据。

同期销售额 = CALCULATE([销售额],SAMEPERIODLASTYEAR('Model-DimDates'[date]))同期订单数 = CALCULATE ( [订单数], SAMEPERIODLASTYEAR('Model-DimDates'[Date] ))同期客单价 = DIVIDE ( [同期销售额], [同期订单数] )同期销量 = CALCULATE ( [销量], SAMEPERIODLASTYEAR('Model-DimDates'[Date] ))同期连带率 = DIVIDE ( [同期销量], [同期订单数] )同期件单价 = DIVIDE ( [同期销售额], [同期销量] )

同比指标

同比的计算公式,例如销售额同比 = (本期销售额 - 同期销售额) / 同期销售额,经过通分可以优化成:

销售额同比 = 本期销售额 / 同期销售额 -1

基于此,就可以得到如下同比指标的计算公式:

销售额同比 = DIVIDE ( [销售额], [同期销售额] ) - 1订单数同比 = DIVIDE ( [订单数], [同期订单数] ) - 1客单价同比 = DIVIDE ( [客单价], [同期客单价] ) - 1销量同比 = DIVIDE ( [销量], [同期销量] ) - 1连带率同比 = DIVIDE ( [连带率], [同期连带率] ) - 1件单价同比 = DIVIDE ( [件单价], [同期件单价] ) - 1

经营成效分析区

基于公式,累计客单价 = 销售额 / 人数,就可得到度量值计算语句:

人数 = DISTINCTCOUNT ( 'Model-factsales'[客户 Id] )累计客单价 = DIVIDE ( [销售额], [人数] )

其中,客单价与累计客单价指标的区别在于,前者是每个客户单次订单的平均金额,而后者是每个客户多次订单的累计金额。客单价的使用场景可以是每次活动前的选品,而累计客单价则衡量客户的消费能力。

分析维度区

分析维度区的作用在于选择不同维度进行筛选计算,其中,时间维度可以直接通过日期表中的字段进行筛选,不需要新建度量值。

而产品类别维度其实一般来说也是直接使用产品表的字段即可,但是为了展示通过表格筛选数据的效果,同时,也是为业务提供更好的报表使用体验,这里也新建了产品相关的度量值。

销量占比

在产品类别表现表中,同步销量占比来分析产品类别的销售结构。这里的计算逻辑稍微更复杂了一些。

总体的公式:销量占比 = 销量 / 总销量

其中,为了消除上下文的限制,使用ALL函数选择了所有的产品,这样放到产品类别表现中,得到的结果就是某个类别的销量,占所有类别销量的比例。

销量占比 = DIVIDE ( [销量], CALCULATE ( [销量], ALL ( 'Model-DimProduct' ) ) )

销量占比同比

结构分析中,同样需要通过同比看销量结构的变化。而比例、占比、百分比类型的指标做同比时,一般不说提升/降低了百分之多少,而是通过提升/降低了多少个百分点来表示。

例如2022年办公用品销量占比20%,而2021年办公用品销量占比10%,一般不说2022年办公用品销量占比同比提升100%,而是说2022年办公用品销量占比同比提升了10个百分点。

在介绍PowerBI核心概念的文章中,我们说“利用SQL的思维去看PowerBI有助于我们理解它的运行逻辑”,在这里就得到了印证:回到度量值的语句中,要展示多少个百分点的语句逻辑其实跟SQL中相似,例如SQL写百分数的语句是:

SELECT CONCAT(CAST(ROUND((3/21)*100,2) AS CHAR),'%') AS '百分比' FROM TABLE

在PowerBI中,写销量占比同比需要先用FORMAT函数对计算结果进行格式化,再利用CONCATENATE 将数字结果和单位“个百分点”拼接起来。

销量占比同比 = CONCATENATE ( FORMAT ( ( [销量占比] - [同期销量占比] ) * 100, "0.0" ),"个百分点" )

至此,我们就完成了所有度量值的建立。

数据可视化

接下来切换到“报表”功能页,开始可视化报表的操作。

PowerBI报表制作保姆级实操全流程 :销售异动分析

指标拆解区&页面标题区

新建卡片

这里的报表指标主要以“卡片”的形式实现。

从可视化-图表类型中,找到“卡片图”,然后把“销售额”指标拖拽到卡片图的“字段”位置即可。

同样的原理,新建所有需要的卡片。

PowerBI报表制作保姆级实操全流程 :销售异动分析

调整格式

新建图表后,读者会发现新建的图表和笔者的样子不一致。那是因为,我已对图表进行了格式设计,以优化业务使用时的可视体验。

如何做呢?点击需要调整的图表,在图表设计区域,进入格式栏。

里面可以对图表进行不同的可视化设计,例如把边框去掉、调整数据标签中的字体类型及大小,就能得到如图中“人数同比”的卡片样式。

PowerBI报表制作保姆级实操全流程 :销售异动分析

分析维度区

时间维度

日期的筛选是通过切片器实现的。

在可视化-图表类型中找到切片器,拖拽到画布中,把日期表Model-DimDates中的Date拖拽到“字段”中即可。

PowerBI报表制作保姆级实操全流程 :销售异动分析

产品维度

产品类别表现是一个表格,按如图的顺序把表格字段、及度量值拖拽到“值”的位置即可。

PowerBI报表制作保姆级实操全流程 :销售异动分析

页面标题区

最后,作为完整的分析报表,需要有标题。

导航背景

在功能区找到形状-矩形,插入后调整格式中的填充等设置即可。

PowerBI报表制作保姆级实操全流程 :销售异动分析

标题|文本框

接着,在功能区相同的位置找到文本框,插入、填写标题后对格式进行调整即可。

PowerBI报表制作保姆级实操全流程 :销售异动分析

落地交付

至此,我们就完成了报表页面的制作,效果如图所示。

PowerBI报表制作保姆级实操全流程 :销售异动分析

报表更新

最后留下一个小课题需要你去探索:报表如何实现更新?

提示:尝试先把数据源手动做修改,例如在Excel或者SQL上修改订单金额,然后回到PowerBI,在功能区找到“刷新”,点击一下,看看数据是不是都更新了呢?

PowerBI报表制作保姆级实操全流程 :销售异动分析

相关文章

班迪录屏怎么取消截图水印设置
班迪录屏怎么改存储位置
bandicam录制的视频默认存储在哪
网易云音乐电脑怎么设置播放器样式
酷狗音乐如何创建歌单
酷狗音乐如何单曲循环播放

发布评论