news 2026/4/25 22:49:27

Power BI学习笔记第10篇:实战案例 — 销售数据分析仪表板

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Power BI学习笔记第10篇:实战案例 — 销售数据分析仪表板

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

1. 案例背景与目标

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

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

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

2. 数据准备

2.1 源数据结构

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

销售明细表(Sales)

订单ID订单日期产品类别产品名称区域客户名称销售员销售额成本数量
100012024-01-05电子产品手机A北京客户甲张三5000350010
100022024-01-08服装服装A上海客户乙李四2000120020

产品表(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 创建日期表:

日期表 = 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指标

// 总销售额 销售额总计 = SUM(Sales[销售额]) // 总成本 成本总计 = SUM(Sales[成本]) // 总利润 总利润 = [销售额总计] - [成本总计] // 利润率 利润率 = DIVIDE([总利润], [销售额总计]) // 订单数量 订单数量 = DISTINCTCOUNT(Sales[订单ID]) // 客户数量(去重) 客户数量 = DISTINCTCOUNT(Sales[客户名称]) // 客单价 客单价 = DIVIDE([销售额总计], [客户数量]) // 总销售数量 销售数量总计 = SUM(Sales[数量])

4.2 时间智能指标

// 去年同期销售额 销售额_去年同期 = CALCULATE( [销售额总计], SAMEPERIODLASTYEAR('日期表'[Date]) ) // 同比增长率 销售额_同比 = DIVIDE( [销售额总计] - [销售额_去年同期], [销售额_去年同期] ) // 年累计销售额 销售额_YTD = TOTALYTD([销售额总计], '日期表'[Date]) // 上年同期年累计 销售额_YTD_去年同期 = CALCULATE( [销售额_YTD], SAMEPERIODLASTYEAR('日期表'[Date]) )

4.3 排名与占比

// 产品类别销售占比 销售占比_类别 = 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 报表

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 22:47:02

生产级AI智能体架构实战:从原型到产品的工程化指南

1. 从原型到产品:构建生产级AI智能体的核心挑战与破局思路如果你和我一样,在AI智能体这个领域摸爬滚打了一段时间,你一定会发现一个巨大的鸿沟:在Jupyter Notebook里跑通一个能聊天的智能体,和把它变成一个能稳定服务成…

作者头像 李华
网站建设 2026/4/25 22:46:35

026、模型层选型:闭源、开源大模型与小型化部署

上周帮同事排查一个线上问题,他们的Agent在调用某云厂商的GPT-4接口时,因为突发流量导致响应延迟飙升,整个对话链路的超时机制直接崩了。更麻烦的是,事后查日志发现其中几次异常响应是因为模型服务方临时调整了输出格式,我们的解析逻辑没跟上。这让我再次意识到:模型层的…

作者头像 李华
网站建设 2026/4/25 22:46:34

027、工程化基础:Agent的API设计与异步处理

上周排查一个线上问题,Agent在并发请求下频繁超时。日志里一堆TimeoutException堆在一起,但监控显示CPU和内存都很健康。最后定位到问题:同步阻塞的API设计遇上高并发,线程池直接被打满。今天我们就聊聊Agent工程化中两个关键问题:API该怎么设计,异步该怎么处理。 一、A…

作者头像 李华
网站建设 2026/4/25 22:38:58

用STM32CubeMX和HAL库快速上手MAX30102,告别繁琐的寄存器配置

STM32CubeMX与HAL库驱动MAX30102:图形化开发全攻略 1. 现代嵌入式开发的新选择 在嵌入式开发领域,STM32CubeMX和HAL库的出现彻底改变了传统开发模式。相比直接操作寄存器的开发方式,这种图形化配置工具配合硬件抽象层库的方法,让开…

作者头像 李华