一、零售超市多门店销售分析

案例数据

表1:销售事实表

销售ID

销售日期

门店ID

产品ID

销量

销售额

1

2024-01-02

S01

PD01

3

300

2

2024-01-05

S01

PD02

2

400

3

2024-01-10

S02

PD01

5

500

4

2024-02-01

S01

PD03

1

200

5

2024-02-10

S03

PD01

4

400

6

2024-02-15

S02

PD02

2

400

7

2024-03-05

S01

PD01

3

300

8

2024-03-12

S03

PD03

2

400

表2:门店表

门店ID

门店名称

城市

大区

开业日期

S01

望京店

北京

华北

2022-01-01

S02

五角场店

上海

华东

2022-06-01

S03

天河店

广州

华南

2023-01-01

表3:目标表

年份

月份

门店ID

目标额

2024

1

S01

800

2024

1

S02

1000

2024

1

S03

600

2024

2

S01

700

2024

2

S02

900

2024

2

S03

700

2024

3

S01

900

2024

3

S02

1100

2024

3

S03

800

表4:产品表

产品ID

产品名称

分类

品牌

成本价

PD01

纯牛奶 1L

乳制品

蒙牛

60

PD02

酸奶 200g

乳制品

伊利

150

PD03

奶酪棒

乳制品

妙可蓝多

180

表5:退货事实表

退货ID

退货日期

门店ID

产品ID

退货金额

R01

2024-01-07

S01

PD01

100

R02

2024-02-12

S02

PD02

200

R03

2024-03-08

S01

PD01

100

表6:日期表(DAX代码自动生成)

DAX 代码,一键生成 2024 年全年的连续日期表。

1、建表

在 Excel 中分别创建 6 张工作表

创建日期表的DAX代码:

日期表 = 
VAR StartDate = DATE(2024, 1, 1)
VAR EndDate = DATE(2024, 12, 31)
RETURN
ADDCOLUMNS(
    CALENDAR(StartDate, EndDate),
    "年份", YEAR([Date]),
    "月份编号", MONTH([Date]),
    "月份", FORMAT([Date], "MM月"),
    "季度", "Q" & QUARTER([Date]),
    "年季", YEAR([Date]) & " Q" & QUARTER([Date]),
    "是否周末", WEEKDAY([Date], 2) >= 6
)

2、检查数据类型(非常重要

表名

列名

应为类型

销售事实表

销售ID

整数

销售日期

日期

门店ID

文本

产品ID

文本

销量

整数

销售额

十进制数

门店表

门店ID

文本

门店名称

文本

城市

文本

大区

文本

开业日期

日期

产品表

产品ID

文本

产品名称

文本

分类

文本

品牌

文本

成本价

十进制数

目标表

年份

整数

月份

整数

门店ID

文本

目标额

十进制数

退货事实表

退货ID

文本

退货日期

日期

门店ID

文本

产品ID

文本

退货金额

十进制数

3、设计模型关系

①在目标表中建立目标日期,然后和日期表【Date】关联

目标表[目标日期] = DATE( [年份], [月份], 1 )

②按顺序建立关系

第一批:日期表连接事实表

从(维度)

到(事实)

方向

日期表[Date]

销售事实表[销售日期]

一对多(单向)

日期表[Date]

退货事实表[退货日期]

一对多(单向)

日期表[年月]

目标表[年月]

一对多(单向)

第二批:门店表连接事实表

从(维度)

到(事实)

方向

门店表[门店ID]

销售事实表[门店ID]

一对多(单向)

门店表[门店ID]

退货事实表[门店ID]

一对多(单向)

门店表[门店ID]

目标表[门店ID]

一对多(单向)

第三批:产品表连接事实表

从(维度)

到(事实)

方向

产品表[产品ID]

销售事实表[产品ID]

一对多(单向)

产品表[产品ID]

退货事实表[产品ID]

一对多(单向)

最后,进行关系检查:

        日期表
       ↙     ↘
销售事实表   退货事实表   目标表
       ↘     ↙        ↗
        门店表 ←───────
         ↙
       产品表

4、创建基础度量值

点击建模菜单→新建表创建一个专门存放度量值的表(方便管理):

度量值表 = { ("初始化", 1) }

然后在这个表中创建以下度量值(右键点击→新建度量值):

①核心销售指标:

总销售额 = SUM( '销售事实表'[销售额] )
总销量 = SUM( '销售事实表'[销量] )
订单数量 = COUNTROWS( '销售事实表' )
平均客单价 = DIVIDE( [总销售额], [订单数量] )

②退货相关指标:

总退货金额 = SUM( '退货事实表'[退货金额] )
退货率 = DIVIDE( [总退货金额], [总销售额], 0 )

③净销售额(扣除退货

净销售额 = [总销售额] - [总退货金额]

④目标达成分析

总目标额 = SUM( '目标表'[目标额] )
目标达成率 = DIVIDE( [净销售额], [总目标额], 0 )
目标差距 = [总目标额] - [净销售额]
目标达成状态 = 
SWITCH(
    TRUE(),
    [目标达成率] >= 1, "✅ 达成",
    [目标达成率] >= 0.8, "⚠️ 接近",
    [目标达成率] >= 0.6, "🔶 落后",
    "❌ 严重落后"
)

⑤时间智能分析(同比/环比)

注意!!需要日期表与销售事实表已正确关联

上月销售额 = 
CALCULATE( 
    [净销售额], 
    PREVIOUSMONTH( '日期表'[Date] ) 
)
环比增长率 = 
DIVIDE( 
    [净销售额] - [上月销售额], 
    [上月销售额], 
    0 
)
去年同月销售额 = 
CALCULATE( 
    [净销售额], 
    SAMEPERIODLASTYEAR( '日期表'[Date] ) 
)
同比增长率 = 
DIVIDE( 
    [净销售额] - [去年同月销售额], 
    [去年同月销售额], 
    0 
)
年初至今销售额 = TOTALYTD( [净销售额], '日期表'[Date] )

5、创建报表页面

①设计页面布局

┌─────────────────────────────────────────────────────────┐
│  [卡片图]    [卡片图]    [卡片图]    [卡片图]    [卡片图]  │
│  净销售额     目标达成率    退货率      环比       同比     │
├─────────────────────────────────────────────────────────┤
│                                                         │
│         📈 净销售额趋势(按月折线图)                      │
│                                                         │
├──────────────────────────────┬──────────────────────────┤
│                              │                          │
│   📊 各门店净销售额(柱状图)   │   🎯 目标达成排行(条形图) │
│                              │                          │
├──────────────────────────────┴──────────────────────────┤
│                                                         │
│   📋 门店月度明细(矩阵表格)                              │
│                                                         │
└─────────────────────────────────────────────────────────┘

②放置视觉对象

区域一:顶部 KPI 卡片(5个)

视觉对象

字段

格式建议

卡片图

净销售额

货币,千位分隔符

卡片图

目标达成率

百分比,小数位0

卡片图

退货率

百分比,小数位1

卡片图

环比增长率

百分比,正数为▲绿色,负数为▼红色

卡片图

同比增长率

百分比,同上

设置环比/同比的颜色

  • 选中卡片图 → 格式 → 视觉对象 → 数据颜色 → 条件格式 → 按规则:

    • 值 ≥ 0:绿色

    • 值 < 0:红色

区域2:净销售额趋势(折线图)

  • 视觉对象:折线图

  • X轴:日期表[月份](或 日期表[Date] 按月份显示)

  • Y轴:净销售额

  • 添加辅助线:目标线(用 总目标额 按月平均值)

小技巧:把 日期表[年份] 拖到图例,可以按年对比。

区域3:各门店经销售额(柱状图)

  • 视觉对象:簇状柱状图

  • X轴:门店表[门店名称]

  • Y轴:净销售额

  • 颜色:可按 门店表[大区] 着色

区域4:目标达成排行(条形图)

  • 视觉对象:条形图

  • Y轴:门店表[门店名称]

  • X轴:目标达成率

  • 数据标签:显示百分比

  • 设置数据条颜色:条件格式(达成≥100%绿色,<100%红色)

区域5:门店月度明细(矩阵)

  • 视觉对象:矩阵

  • 行:门店表[门店名称]

  • 列:日期表[月份]

  • 值:

    • 净销售额

    • 目标额

    • 目标达成率

    • 退货率

条件格式设置(目标达成率):

  • 选中矩阵中的目标达成率 → 条件格式 → 背景色

  • 规则:≥100% 浅绿,≥80% 浅黄,<80% 浅红


③添加筛选器(切片器)

在画布右侧添加 切片器

切片器字段

类型

说明

日期表[年份]

下拉

筛选年份

门店表[大区]

列表

筛选大区

产品表[分类]

下拉

筛选产品分类