可视化 & BI · 第 3 篇
Power BI 入门
Power BI 是微软推出的商业智能工具,也是全球企业使用最广泛的 BI 平台之一。 如果你目标公司的技术栈是微软生态(Office 365、Azure、Teams),或者 JD 中提到了 Power BI,那这篇文章就是为你准备的。
Power BI vs Tableau:快速对比
| 维度 | Power BI | Tableau |
|---|---|---|
| 价格 | Desktop 免费,Pro 每月约 $10 | Desktop 收费较高,Public 免费 |
| 上手难度 | Excel 用户上手极快 | 拖拽直觉更强 |
| 核心优势 | 微软生态整合、DAX 强大 | 可视化灵活度高、社区活跃 |
| 数据建模 | 内置 Power Query + DAX,建模能力强 | 需要在数据源层面提前处理 |
| 部署 | Azure Cloud / Teams 深度整合 | Tableau Server / Cloud |
| 适合场景 | 企业级报表、自助式 BI | 探索性分析、数据新闻 |
学习策略:如果两个工具都不熟,Power BI 的学习曲线更平缓(尤其如果你熟悉 Excel)。两个都学基础,求职时根据 JD 要求重点准备一个。
安装与配置
下载 Power BI Desktop
- 访问 Power BI Desktop 下载页面 或直接在 Microsoft Store 安装
- 安装完成后打开,使用微软账号登录(免费账号即可使用 Desktop 功能)
- Desktop 版本的全部功能免费,发布到云端需要 Pro 许可
注意:Power BI Desktop 目前仅支持 Windows。Mac 用户可以使用虚拟机(Parallels / VMware)或 Power BI Service 网页版。
界面概览
Power BI Desktop 的界面分为三个主要视图:
| 视图 | 图标 | 用途 |
|---|---|---|
| 报表视图 | 📊 | 制作可视化图表和报表页面 |
| 数据视图 | 📋 | 查看和编辑数据表 |
| 模型视图 | 🔗 | 管理表之间的关系(数据建模) |
右侧面板:
- 筛选器窗格:设置视觉对象级、页面级、报表级筛选
- 可视化窗格:选择图表类型、配置字段
- 字段窗格:显示所有表和字段
数据获取与 Power Query
连接数据源
点击”主页” → “获取数据”,Power BI 支持超过 100 种数据源:
- 文件:Excel、CSV、JSON、PDF
- 数据库:SQL Server、MySQL、PostgreSQL、Oracle
- 云服务:Azure SQL、Google Analytics、Salesforce、SharePoint
- 其他:Web 页面、OData、API
Power Query 编辑器
Power Query 是 Power BI 内置的数据清洗与转换工具,类似于 Tableau Prep 或 Pandas:
- 连接数据后选择”转换数据”进入 Power Query 编辑器
- 所有操作都会记录为”应用的步骤”,可以随时修改或删除
- 修改完成后点击”关闭并应用”
常用 Power Query 操作
| 操作 | 说明 | 相当于 |
|---|---|---|
| 删除列 | 右键列标题 → 删除 | Pandas: df.drop(columns=[...]) |
| 筛选行 | 点击列标题的下拉箭头 → 筛选 | Pandas: df[df["col"] > val] |
| 替换值 | 右键 → 替换值 | Pandas: df.replace(...) |
| 更改类型 | 右键列 → 更改类型 | Pandas: df.astype(...) |
| 分列 | 右键 → 拆分列 | Pandas: df["col"].str.split(...) |
| 合并查询 | 主页 → 合并查询 | Pandas: pd.merge(...) |
| 追加查询 | 主页 → 追加查询 | Pandas: pd.concat(...) |
| 分组依据 | 主页 → 分组依据 | Pandas: df.groupby(...) |
| 透视列/逆透视 | 转换 → 透视/逆透视 | Pandas: df.pivot() / df.melt() |
Power Query vs DAX:Power Query 在数据加载前做清洗和转换(ETL 阶段),DAX 在数据加载后做计算和分析。两者分工明确,不要混淆。
数据建模
数据建模是 Power BI 区别于其他 BI 工具的核心能力之一。一个好的数据模型决定了报表的性能和灵活度。
星型模型
Power BI 推荐使用星型模型(Star Schema)组织数据:
- 事实表(Fact Table):存储业务度量数据(订单、交易、日志),行数多
- 维度表(Dimension Table):存储描述性信息(渠道、品类、城市),行数少
┌──────────┐
│ 日期维度表 │
└─────┬────┘
│
┌──────────┐ ┌────┴─────┐ ┌──────────┐
│ 渠道维度表 ├───┤ 订单事实表 ├───┤ 品类维度表 │
└──────────┘ └────┬─────┘ └──────────┘
│
┌─────┴────┐
│ 城市维度表 │
└──────────┘
建立表关系
- 切换到模型视图
- 从事实表的外键拖向维度表的主键
- 检查关系的基数(通常是”多对一”)和交叉筛选方向(通常是”单向”)
最佳实践:
- 事实表和维度表之间用”多对一”关系
- 避免”多对多”关系(会导致性能和计算问题)
- 交叉筛选方向默认”单向”,只在特殊情况下使用”双向”
DAX 基础
DAX(Data Analysis Expressions)是 Power BI 的公式语言,语法类似 Excel 函数,但功能更强大。
DAX 的两种用法
| 类型 | 用途 | 示例 |
|---|---|---|
| 度量值(Measure) | 动态计算,随筛选条件变化 | 总 GMV、转化率、同比增长 |
| 计算列(Calculated Column) | 在表中添加新列,行级别计算 | 用户分层标签、日期提取 |
核心区别:度量值在报表交互时实时计算(适合 KPI 指标),计算列在数据加载时一次性计算并存储(适合分组标签)。优先使用度量值,因为更节省内存。
常用 DAX 公式
// 基础聚合
总GMV = SUM(订单表[GMV])
总订单 = COUNTROWS(订单表)
客单价 = DIVIDE(SUM(订单表[GMV]), COUNTROWS(订单表), 0)
// DIVIDE 比直接用 / 更安全,第三个参数是除数为 0 时的默认值
// 条件计数
高价值订单数 = CALCULATE(
COUNTROWS(订单表),
订单表[GMV] >= 500
)
// 去重计数
独立用户数 = DISTINCTCOUNT(订单表[用户ID])
// 时间智能函数(Power BI 的独家优势)
上月GMV = CALCULATE(
SUM(订单表[GMV]),
DATEADD(日期表[日期], -1, MONTH)
)
环比增长率 = DIVIDE(
[总GMV] - [上月GMV],
[上月GMV],
0
)
// 同比
去年同期GMV = CALCULATE(
SUM(订单表[GMV]),
SAMEPERIODLASTYEAR(日期表[日期])
)
同比增长率 = DIVIDE(
[总GMV] - [去年同期GMV],
[去年同期GMV],
0
)
// 累计
年初至今GMV = TOTALYTD(
SUM(订单表[GMV]),
日期表[日期]
)
// 排名
渠道排名 = RANKX(
ALL(渠道表[渠道名称]),
[总GMV],
,
DESC,
Dense
)
日期表的重要性
Power BI 的时间智能函数(DATEADD、SAMEPERIODLASTYEAR、TOTALYTD 等)依赖一个完整的日期表。创建方法:
日期表 = CALENDAR(DATE(2023,1,1), DATE(2024,12,31))
然后添加计算列:
年 = YEAR(日期表[Date])
月 = MONTH(日期表[Date])
季度 = "Q" & QUARTER(日期表[Date])
星期 = FORMAT(日期表[Date], "dddd")
年月 = FORMAT(日期表[Date], "YYYY-MM")
最后在模型视图中将日期表标记为”日期表”(右键表 → “标记为日期表”)。
制作可视化报表
常用视觉对象
| 视觉对象 | 用途 | 字段配置 |
|---|---|---|
| 卡片 | 单个 KPI 大数字 | 值:度量值 |
| KPI | KPI + 趋势 + 目标 | 指示器、趋势轴、目标 |
| 折线图 | 时间趋势 | X轴:日期,Y轴:度量值 |
| 簇状柱形图 | 类别对比 | 轴:维度,值:度量值 |
| 堆叠柱形图 | 类别对比 + 构成 | 轴、图例、值 |
| 饼图/环形图 | 占比(少于 6 类) | 图例、值 |
| 表格/矩阵 | 明细数据 | 行、列、值 |
| 地图 | 地理分布 | 位置、大小、颜色 |
| 漏斗图 | 转化分析 | 组、值 |
| 散点图 | 关系分析 | X轴、Y轴、图例、大小 |
制作步骤
- 在可视化窗格中点击要使用的图表类型
- 从字段窗格把维度和度量拖到相应位置
- 在格式面板中调整标题、颜色、字体、数据标签等
- 添加筛选器实现交互
条件格式
Power BI 支持丰富的条件格式,让数据自动高亮:
- 数据条:在表格中用条形长度表示大小
- 颜色缩放:根据数值大小自动着色
- 图标集:用箭头(上升/下降)或红绿灯表示状态
- 规则:自定义条件(如 GMV > 10 万标绿色,< 5 万标红色)
设置方式:选中视觉对象 → 格式 → 条件格式。
发布与分享
发布到 Power BI Service
- 点击”主页” → “发布”
- 选择目标工作区(需要 Power BI Pro 许可或 PPU 许可)
- 发布成功后在浏览器中打开 Power BI Service
分享方式
| 方式 | 适用场景 | 要求 |
|---|---|---|
| 直接分享 | 分享给特定同事 | 接收者需有 Pro 许可 |
| 应用 | 分发给整个团队/部门 | 创建者需有 Pro 许可 |
| 嵌入 | 嵌入到 Teams/SharePoint/网页 | 需配置嵌入权限 |
| 导出 PDF | 不需要交互的场景 | 无特殊要求 |
自动刷新
发布到 Power BI Service 后,可以设置数据自动刷新:
- 在 Service 中找到数据集 → 设置 → 计划刷新
- 设置刷新频率(每日、每周等)
- 配置数据源凭据
实战:销售分析报表
用以下步骤完成一个完整的 Power BI 销售分析报表:
报表页面规划
| 页面 | 内容 |
|---|---|
| 概览页 | KPI 卡片(GMV、订单、客单价)+ GMV 趋势 + 渠道占比 |
| 渠道分析页 | 渠道 GMV 对比 + 渠道效率散点图 + 渠道趋势 |
| 品类分析页 | 品类排名 + 品类趋势 + 品类 × 渠道交叉矩阵 |
| 明细页 | 可筛选的订单明细表格 |
设计技巧
- 统一配色:整份报表用同一套色板,推荐 3-5 个主色
- 对齐与间距:使用”格式” → “对齐”功能,保持图表间距一致
- 书签:创建多个”视图状态”,让用户一键切换不同分析视角
- 按钮导航:添加按钮,实现页面间跳转,提升用户体验
- 工具提示页面:创建专门的工具提示页面,鼠标悬停时显示详细信息
小结
本篇覆盖了 Power BI 的核心知识:
- 数据获取:Power Query 清洗与转换
- 数据建模:星型模型、表关系
- DAX 基础:度量值、计算列、时间智能函数
- 可视化:常用视觉对象、条件格式
- 发布分享:Power BI Service、自动刷新
Power BI 的进阶方向是深入学习 DAX(尤其是 CALCULATE、筛选上下文、行上下文),这会让你的分析能力产生质的飞跃。
掌握了 Tableau 和 Power BI 这两大 BI 工具后,下一篇我们学习 数据看板设计——不是工具操作,而是设计思维:如何从业务需求出发,设计一个真正有用的数据看板。