惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LangChain Blog
爱范儿
爱范儿
博客园_首页
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
宝玉的分享
宝玉的分享
GbyAI
GbyAI
H
Help Net Security
A
About on SuperTechFans
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
D
Docker
博客园 - Franky
有赞技术团队
有赞技术团队
G
Google Developers Blog

博客园 - 哥本哈士奇(aspnetx)

dbt+SQLServer构建数据仓库(13):运维 FAQ 篇 dbt+SQLServer构建数据仓库(12):进阶 FAQ 篇 dbt+SQLServer构建数据仓库(11):FAQ 篇 dbt+SQLServer构建数据仓库(10):macro 以及 data vault的应用实例 dbt+SQLServer构建数据仓库(9):用Vibe Coding创建一个DBT UI dbt+SQLServer构建数据仓库(8):Vibe Coding用dbt构建data vault数仓 dbt+SQLServer构建数据仓库(7):进阶扩展 dbt+SQLServer构建数据仓库(6):Jinja与DAG实战 dbt+SQLServer构建数据仓库(5):数据测试 dbt+SQLServer构建数据仓库(4):分层建模实战 dbt+SQLServer构建数据仓库(3):dbt_project.yml配置精讲 dbt+SQLServer构建数据仓库(2):与传统方案对比及迁移决策 dbt+SQLServer构建数据仓库(1):认识dbt与项目工作流程 SQL Server 索引知识汇总 医疗器械行业 Salesforce Territory 完整落地实例 Raw Data Vault vs Business Data Vault Neo4j 多跳查询实战:从社交网络场景理解图遍历 Git 本地版本管理学习笔记 看完《低智商犯罪》,学习Cypher构建知识图谱 LangChain DeepAgents 学习笔记 LangChain Deepagent 版本0.6.1中间件一个bug Neo4j笔记(五):查询的处理流程 微软 SQL Server 版本演进史:从诞生到 SQL Server 2025 提升 Text2SQL 准确率 SQLServer Management Studio(SSMS) 22 Copilot 最佳实践学习笔记 SQLServer RAG笔记4:从服务层到前端交互 SQLServer RAG笔记5:为SQLServer 2025配置Ollama SQL Server RAG 笔记3:SQLServer2025 向量数据库 详解传统RAG、Text2SQL、Graph RAG:适用场景与问题示例汇总 SQL Server RAG 笔记2:图数据库服务层与前端可视化构建
Power BI学习笔记第10篇:实战案例 — 销售数据分析仪表板
哥本哈士奇(aspnet · 2026-04-25 · via 博客园 - 哥本哈士奇(aspnetx)

第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 创建日期表:

日期表 = 
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 发布前检查清单

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