第10篇:实战案例 — 销售数据分析仪表板

第10篇:实战案例 --- 销售数据分析仪表板

1. 案例背景与目标

本篇将用一个小型的销售数据分析场景,串联整个系列教程的知识要点。

业务背景 :

某公司有 2024 年的销售数据,需要制作一个仪表板,满足以下分析需求:

  1. 总览:年销售额、订单数、客户数、客单价
  2. 趋势:月度销售额走势(含同比)
  3. 构成:各产品类别销售额占比
  4. 对比:各区域销售业绩排名
  5. 明细:支持按产品类别和区域筛选

2. 数据准备

2.1 源数据结构

本案例使用 Excel 文件导入,包含以下三张表:

销售明细表(Sales):

订单ID 订单日期 产品类别 产品名称 区域 客户名称 销售员 销售额 成本 数量
10001 2024-01-05 电子产品 手机A 北京 客户甲 张三 5000 3500 10
10002 2024-01-08 服装 服装A 上海 客户乙 李四 2000 1200 20
... ... ... ... ... ... ... ... ... ...

产品表(Products):

产品ID 产品名称 产品类别 品牌 单位成本
P01 手机A 电子产品 品牌甲 3500
P02 服装A 服装 品牌乙 1200

客户表(Customers):

客户ID 客户名称 地区 客户等级
C01 客户甲 北京 VIP
C02 客户乙 上海 普通

💡 实际项目中,数据可能来自 ERP 系统或数据库。此处用 Excel 模拟,方便读者自行练习。

2.2 导入数据

  1. 打开 Power BI Desktop → "获取数据" → "Excel 工作簿"
  2. 加载销售明细、产品表、客户表三张表
  3. 确认数据类型:订单日期改为日期类型,销售额/成本改为小数类型

3. 数据建模

3.1 建立关系

进入"模型视图",按以下方式建立关系:

复制代码
产品表(1)------→(*)销售明细表(产品名称)
客户表(1)------→(*)销售明细表(客户名称)
日期表(1)------→(*)销售明细表(订单日期)

3.2 创建日期表

在 Power Query 中用 DAX 创建日期表:

dax 复制代码
日期表 = 
ADDCOLUMNS(
    CALENDAR(DATE(2024,1,1), DATE(2024,12,31)),
    "年", YEAR([Date]),
    "月", MONTH([Date]),
    "年月", FORMAT([Date], "yyyy-MM"),
    "季度", "Q" & QUARTER([Date]),
    "年度月份", FORMAT([Date], "yyyy-MM"),
    "星期", FORMAT([Date], "dddd")
)

标记日期表:"表格工具" → "标记为日期表" → 选择 Date 列。


4. 创建 DAX 度量值

在建模视图或数据视图中创建以下度量值,集中管理:

4.1 核心KPI指标

dax 复制代码
// 总销售额
销售额总计 = SUM(Sales[销售额])

// 总成本
成本总计 = SUM(Sales[成本])

// 总利润
总利润 = [销售额总计] - [成本总计]

// 利润率
利润率 = DIVIDE([总利润], [销售额总计])

// 订单数量
订单数量 = DISTINCTCOUNT(Sales[订单ID])

// 客户数量(去重)
客户数量 = DISTINCTCOUNT(Sales[客户名称])

// 客单价
客单价 = DIVIDE([销售额总计], [客户数量])

// 总销售数量
销售数量总计 = SUM(Sales[数量])

4.2 时间智能指标

dax 复制代码
// 去年同期销售额
销售额_去年同期 = 
CALCULATE(
    [销售额总计],
    SAMEPERIODLASTYEAR('日期表'[Date])
)

// 同比增长率
销售额_同比 = 
DIVIDE(
    [销售额总计] - [销售额_去年同期],
    [销售额_去年同期]
)

// 年累计销售额
销售额_YTD = TOTALYTD([销售额总计], '日期表'[Date])

// 上年同期年累计
销售额_YTD_去年同期 = 
CALCULATE(
    [销售额_YTD],
    SAMEPERIODLASTYEAR('日期表'[Date])
)

4.3 排名与占比

dax 复制代码
// 产品类别销售占比
销售占比_类别 = 
DIVIDE(
    [销售额总计],
    CALCULATE([销售额总计], ALL(Sales[产品类别]))
)

// 区域排名
区域排名 = 
RANKX(
    ALL(Sales[区域]),
    [销售额总计],
    ,
    DESC,
    DENSE
)

5. 设计报表页面

5.1 第一页:首页总览(KPI Dashboard)

布局设计:

复制代码
┌──────────────────────────────────────────────┐
│  2024年销售总览          [区域切片器] [类别切片器]│
├────────────┬────────────┬────────────┬─────────┤
│ 💰 总销售额  │ 📦 订单数  │ 👥 客户数  │ 💎 客单价 │
│  ¥1,234,567 │    1,520   │     320    │ ¥3,858   │
│  ↑12.5%     │  ↑8.2%     │  ↑5.1%     │  ↑3.8%   │
├────────────┴────────────┴────────────┴─────────┤
│         月度销售额趋势(折线+柱形组合图)         │
│  Y轴:销售额 | X轴:月份 | 对比:今年 vs 去年      │
├──────────────────────────┬────────────────────┤
│  各产品类别销售占比(饼图)│  各区域销售排名(条形图)│
│  可点击联动到其他图表     │  带数据标签        │
└──────────────────────────┴────────────────────┘

可视化设置:

图表 字段配置 格式设置
KPI卡片(4个) 度量值 → 指标;可选:同期值 → 目标 打开数据标签、副标题显示同比
组合图 轴:年月;列值:销售额;线值:销售额_同比 显示双轴,关闭列的图例
饼图 图例:产品类别;值:销售额总计 显示数据标签:百分比
条形图 Y轴:区域;X轴:销售额总计 降序排列,显示数据标签

5.2 第二页:产品分析

复制代码
┌──────────────────────────────────────────────┐
│  产品分析          [产品类别切片器] [品牌切片器]  │
├──────────────────────────────────────────────┤
│     产品类别月度趋势(堆积柱形图)               │
│  X轴:年月 | Y轴:销售额 | 堆叠:产品类别       │
├──────────────────────────┬────────────────────┤
│  产品销售排名(表格)      │  产品利润排行榜    │
│  含:销售额、同比、占比   │  按利润率排序      │
└──────────────────────────┴────────────────────┘

表格条件格式:

  • 销售额列 → 数据条
  • 同比列 → 字体颜色(绿色=正增长,红色=负增长)
  • 利润率列 → 色阶(红→黄→绿)

5.3 第三页:区域分析

复制代码
┌──────────────────────────────────────────────┐
│  区域分析              [区域切片器] [季度切片器] │
├──────────────────────────────────────────────┤
│      各区域月度销售额(分区柱形图)             │
├─────────────┬──────────────┬──────────────────┤
│ 区域销售排名 │ 区域销售漏斗  │  区域客户数分布   │
│  条形图      │  瀑布图      │  环形图           │
└─────────────┴──────────────┴──────────────────┘

5.4 第四页:明细数据

复制代码
┌──────────────────────────────────────────────┐
│  销售明细           [搜索框] [日期范围切片器]  │
├──────────────────────────────────────────────┤
│     矩阵表(支持展开折叠)                     │
│  行:区域→产品类别→产品名称(层级展开)         │
│  列:销售额 | 成本 | 利润 | 利润率 | 数量      │
│  支持条件格式、排序、小计                      │
└──────────────────────────────────────────────┘

6. 添加交互功能

6.1 切片器同步

在所有页面添加统一切片器:

  • "区域"切片器(影响所有页面)
  • "产品类别"切片器(影响所有页面)
  • "时间范围"切片器(相对日期:过去12个月)

6.2 页面导航

使用"按钮+书签"创建页面切换导航栏,替代传统页面标签:

  1. 在每页顶部添加一个横条
  2. 插入4个按钮,分别对应4个页面
  3. 每个按钮绑定对应书签的"转到页面"操作

6.3 钻取功能

在"区域分析"页面,添加钻取到"产品分析"页面的功能:

  1. 创建钻取页面:按区域展开的详细产品销售分析
  2. 在条形图上右键 → "钻取" → 选择区域 → 跳转到钻取页

7. 发布与共享

7.1 发布前检查清单

  • 所有切片器能正确联动
  • KPI 数字格式正确(货币格式、百分比格式)
  • 同比增长率显示正负颜色
  • 钻取功能测试通过
  • 页面导航按钮工作正常
  • 条件格式(数据条、色阶)显示正常

7.2 发布流程

  1. 保存 .pbix 文件
  2. 点击"发布" → 选择"我的工作区"或新建工作区
  3. 等待上传完成

7.3 配置定时刷新

  1. 在 Power BI Service 中打开数据集
  2. 设置计划刷新(每天凌晨自动刷新)
  3. 如果使用本地 Excel 文件,需安装并配置本地数据网关

7.4 共享设置

  1. 点击右上角"共享"
  2. 邀请团队成员邮箱
  3. 设置权限:允许查看、允许导出数据、允许构建内容

8. 报表优化建议

问题 优化方向
报表加载慢 减少 DAX 计算量;减少页面视觉对象数量
图表不联动 检查"编辑交互"设置
刷新失败 检查数据源凭据和网关状态
移动端显示差 在"视图"中切换到"手机布局"专门设计移动版
数据泄露风险 配置行级安全(RLS),限制不同用户的数据范围

9. 进阶学习方向

完成本系列教程后,可以进一步学习:

方向 说明
DAX 高级模式 学习 TREATAS、CROSSFILTER 等高级函数
Power Query 高级 学习参数化查询、自定义函数
增量刷新(Premium) 处理 GB-TB 级数据的增量加载
数据流(Dataflow) 在云端统一管理数据转换逻辑
Power BI 嵌入式 将报表嵌入到企业自有应用中
高级可视化 学习 R 和 Python 视觉对象
行级安全(RLS) 构建多租户 SaaS 报表

相关推荐
Sharewinfo_BJ12 天前
PBIP项目结构与文件解析
git·powerbi·智信bi·上北智信
宝桥南山14 天前
Microsoft Fabric - 简单尝试一下Microsoft Fabric .NET SDK
microsoft·微软·.net·.netcore·powerbi·fabric
Sharewinfo_BJ19 天前
Power BI 四种核心文件格式解析:PBIX、PBIT、PBIP、PBIR
powerbi
y52364821 天前
Powerbi 动态矩阵
powerbi
宝桥南山1 个月前
GitHub Copilot - 尝试配置和使用一下Microsoft Fabric Core MCP Server
运维·microsoft·ai·微软·powerbi·fabric
迅易科技2 个月前
Power BI 新功能解读:重构 AI 时代的企业数据建设内核
微软·big data·powerbi
维C°2 个月前
PowerBI数据准备—合并文件夹中同表头Excel或csv
excel·powerbi
维C°2 个月前
PowerBI数据准备—合并同表头的sheet
powerbi
维C°2 个月前
PowerBI数据准备—获取Sharepoint/Onedrive上的Excel
powerbi·sharepoint
Sharewinfo_BJ4 个月前
当 BI 遇上 AI:到底是谁在帮谁?
大数据·人工智能·ai·数据分析·微软·powerbi