第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 报表

相关推荐
哥本哈士奇1 天前
第01篇:Power BI 简介与环境搭建
powerbi
Sharewinfo_BJ7 天前
香港Databricks AI DAYS参会笔记:Agentic Analytics离我们还有多远
大数据·人工智能·数据分析·powerbi
哥本哈士奇18 天前
财务分析报告 - 常用Power BI DAX公式详解
powerbi
数据科学小丫1 个月前
Power BI 使用
数据分析·数据可视化·powerbi
Sharewinfo_BJ1 个月前
数据可视化新维度:Power BI Unicode 应用实战指南
信息可视化·数据挖掘·数据分析·powerbi
雾岛心情1 个月前
【PowerBI专栏】PowerQuery实现按列分行和按列分列
powerbi
Sharewinfo_BJ3 个月前
PowerBI 2026年1月功能更新|效率升级,体验再优化
windows·microsoft·powerbi
y5236483 个月前
PowerBI 简单示例,表格显示当前日期的上一次日期
powerbi
weixin_318088113 个月前
Power query代替PowerBI加载数据到excel
excel·powerbi·power query