零售行业的店铺盈利了没到底怎么算,看PowerBI帮你实现

2020-11-25 11:18:52 浏览数 (1)

判断一家门店经营好坏,通常会选择参照物进行比较,可以是不同时间区间和自身的同环比,也可以在同一个时间区间不同部门间横向比较,或是和某个标准、标杆比较。本节重点介绍对比分析中的一个关键点,计算口径的问题。

选择参照物最重要的一点就是保持计算口径的一致。比如用公司今年累计至今的营业额和去年同期对比,计算同比增长率为20%,这个数字很好地反映了公司整体规模的增长幅度,但能否真实地反映公司的经营业绩水平,说服力稍显不足。虽然营业额同比增长了20%,但由于公司扩张市场规模,门店数比同期增加了30%,增长的营业额全部是靠新开店贡献的,老店整体营业额反而比同期下跌了。所以在分析公司经营业绩水平时,一定要选择本期和同期同时存在的门店进行比较,才能准确得出结论。

这就涉及到可比店和不可比店的概念。可比店是指本年至今和去年同期的每一天均处于营业状态的门店,即两年均有完整的营业天数。不可比店是指去年开业但去年没有完整的营业天数,或者是今年开业的门店。根据开业年份的不同,不可比店又分为满年店和不满年店。满年店是指去年年中某时间开业或是今年元旦开业的门店,在本年有完整的营业天数,而去年同期没有完整营业天数。不满年店是今年元旦后开业的门店,今年没有完整的营业天数。简单来说,今年是2020年,那可比店就是指2019-1-1及之前开业的门店,这样,在2019年和2020年均有完整的营业额可做对比。满年店是指2019-1-1之后及2020-1-2之前开业的门店,这样在2020年有完整经营业绩,但2019年只有部分业绩,无法进行同期对比。不满年店是指2020-1-1之后开业的门店,在本年没有完整经营业绩。

基于可比店进行分析

可比店、满年店、不满年店可以在门店维表中打标,记录目前最新状态。在 Model-Dimstore 门店维表中新建计算列标注,用 PowerBI DAX 实现如下:

代码语言:javascript复制
可比类型 = 
VAR CurYear = YEAR( [最后报表日期] )
RETURN 
    SWITCH( TRUE(),
        [开业时间] <= DATE( CurYear-1, 1, 1 ), "可比店",
        [开业时间] <= DATE( CurYear, 1, 1 ), "满年店",
        "不满年店"
    )

在进行同比分析的时候,就要选择可比店且目前处于营业状态的门店。用 PowerBI DAX 实现如下:

代码语言:javascript复制
销售额 可比店 营业中 =
CALCULATE (
    [Core.销售额],
    'Model-Dimstore'[可比类型] = "可比店",
    'Model-Dimstore'[店铺状态] = "营业中"
)

销售额 可比店 营业中 PY View =
CALCULATE (
    [销售额 可比店 营业中],
    SAMEPERIODLASTYEAR ( 'Model-Dimdates'[Date] ),
    'Model-Dimdates'[IsComparable] = TRUE ()
)

销售额 可比店 营业中 YOY% =
DIVIDE ( [销售额 可比店 营业中] - [销售额 可比店 营业中 PY View], [销售额 可比店 营业中 PY View] )

得到:

不难看出,对可比店进行 YOY% 计算,与不做这样的优化得到的结果差异很大。

可以看出所有店营业额同比增长率为13.11%,而可比店同比增长率为-6.18%,两者差异很大,对决策的影响也是相反的。其中,'Model-Dimdates'[IsComparable] = TRUE(),保证同期的期间是在最后报表日期的同期之前的时间段(后期会有专门文章介绍)。

基于店效进行分析

分析完同期数据,可能还要进一步对各部门各省份进行横向比较,由于每个部门规模不同,就要通过店均营业额来统一规模口径,这又引入了店效的概念:

店效,指一段时间内平均单店营业额。

同样,为了进一步统一时间口径,店效分析也建议选择具有完整营业周期的门店。如果是计算本期店效和同期店效,建议选择可比店,这些店在本期和同期均有完整的营业天数。如果只计算本期店效,建议选择可比店和满年店,既保证在分析周期内有完整的营业天数,而且尽可能把更多的门店纳入分析范围。

用 PowerBI DAX 实现如下:

代码语言:javascript复制
店效 可比店 =
VAR Num =
    CALCULATE (
        COUNTROWS ( 'Model-Dimstore' ),
        'Model-Dimstore'[可比类型] = "可比店",
        'Model-Dimstore'[店铺状态] = "营业中"
    )
RETURN
    DIVIDE ( [销售额 可比店 营业中], Num )
店效 可比店 PY View =
CALCULATE (
    [店效 可比店],
    SAMEPERIODLASTYEAR ( 'Model-Dimdates'[Date] ),
    'Model-Dimdates'[IsComparable] = TRUE ()
)
店效 可比店 YOY% =
DIVIDE ( [店效 可比店] - [店效 可比店 PY View], [店效 可比店 PY View] )

得到:

通过横向比较各省份店效,可以看出,湖北省可比店店效最高,广西省最低。但从同比角度来看,增长最高的是福建省5.78%,增长最低的是广东省,下跌21.22%。

基于店天进行分析

那对于新开店如何分析呢,可能每家店的营业天数都不相同,或者说想要对比今年所有门店和去年所有门店的业绩,口径统一的问题有点棘手,此处我们引入一个更通用的概念,店天:

店天,是指一段时间内所有门店的营业天数

单店单日营业额 = 累计营业额 ÷ 店天

店效(所有店) = 单店单日营业额 * 营业天数

用 PowerBI DAX 实现如下:

代码语言:javascript复制
店天 =
VAR MaxDay =
    MAX ( 'Model-Factsales'[时间] )
VAR FirstDay =
    STARTOFYEAR ( 'Model-Dimdates'[Date] )
RETURN
    CALCULATE (
        SUMX (
            'Model-Dimstore',
            DATEDIFF ( MAX ( 'Model-Dimstore'[开业时间], FirstDay ), MaxDay, DAY )   1
        ),
        'Model-Dimstore'[撤店日期] = BLANK (),
        'Model-Dimstore'[开业时间] <= MaxDay
    )
          CALCULATE (
            SUMX (
                'Model-Dimstore',
                DATEDIFF (
                    MAX ( 'Model-Dimstore'[开业时间], FirstDay ),
                    MIN ( 'Model-Dimstore'[撤店日期], MaxDay ),
                    DAY
                )   1
            ),
            'Model-Dimstore'[撤店日期] > FirstDay,
            'Model-Dimstore'[开业时间] <= MaxDay
        )
店效 所有店 =
VAR MaxDay =
    MAX ( 'Model-Factsales'[时间] )
VAR FirstDay =
    STARTOFYEAR ( 'Model-Dimdates'[Date] )
VAR Days =
    DATEDIFF ( FirstDay, MaxDay, DAY )   1
RETURN
    DIVIDE ( [Core.销售额], [店天] ) * Days
店效 所有店 PY View =
CALCULATE (
    [店效 所有店],
    SAMEPERIODLASTYEAR ( 'Model-Dimdates'[Date] ),
    'Model-Dimdates'[IsComparable] = TRUE ()
)
店效 所有店 YOY% =
DIVIDE ( [店效 所有店] - [店效 所有店 PY View], [店效 所有店 PY View] )

得到:

这样,通过店天的概念,我们成功解决了由于每家店营业天数不统一无法横向比较的问题,均统一成单店单日营业额,再乘以相应的营业天数,就是所有店店效,既可以纵向和同期比较,也可以横向和各部门比较。这里面有一点需要说明,店天的计算中未剔除重装店铺,一方面剔除重装时间,度量值会比较复杂,另方面重装一般半个月左右结束,对整体店效值的计算影响较小。

总结

本文经零售分析专家郑老师授权发布,用 PowerBI DAX 给出了对可比店,店效以及新开店的店天计算。

大家可以直接使用这套逻辑来放入自己的模型。

0 人点赞