可视化 & 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

  1. 访问 Power BI Desktop 下载页面 或直接在 Microsoft Store 安装
  2. 安装完成后打开,使用微软账号登录(免费账号即可使用 Desktop 功能)
  3. 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:

  1. 连接数据后选择”转换数据”进入 Power Query 编辑器
  2. 所有操作都会记录为”应用的步骤”,可以随时修改或删除
  3. 修改完成后点击”关闭并应用”

常用 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):存储描述性信息(渠道、品类、城市),行数少
              ┌──────────┐
              │ 日期维度表 │
              └─────┬────┘
                    │
┌──────────┐   ┌────┴─────┐   ┌──────────┐
│ 渠道维度表 ├───┤ 订单事实表 ├───┤ 品类维度表 │
└──────────┘   └────┬─────┘   └──────────┘
                    │
              ┌─────┴────┐
              │ 城市维度表 │
              └──────────┘

建立表关系

  1. 切换到模型视图
  2. 从事实表的外键拖向维度表的主键
  3. 检查关系的基数(通常是”多对一”)和交叉筛选方向(通常是”单向”)

最佳实践

  • 事实表和维度表之间用”多对一”关系
  • 避免”多对多”关系(会导致性能和计算问题)
  • 交叉筛选方向默认”单向”,只在特殊情况下使用”双向”

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 的时间智能函数(DATEADDSAMEPERIODLASTYEARTOTALYTD 等)依赖一个完整的日期表。创建方法:

日期表 = 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轴、图例、大小

制作步骤

  1. 在可视化窗格中点击要使用的图表类型
  2. 从字段窗格把维度和度量拖到相应位置
  3. 格式面板中调整标题、颜色、字体、数据标签等
  4. 添加筛选器实现交互

条件格式

Power BI 支持丰富的条件格式,让数据自动高亮:

  • 数据条:在表格中用条形长度表示大小
  • 颜色缩放:根据数值大小自动着色
  • 图标集:用箭头(上升/下降)或红绿灯表示状态
  • 规则:自定义条件(如 GMV > 10 万标绿色,< 5 万标红色)

设置方式:选中视觉对象 → 格式 → 条件格式。

发布与分享

发布到 Power BI Service

  1. 点击”主页” → “发布”
  2. 选择目标工作区(需要 Power BI Pro 许可或 PPU 许可)
  3. 发布成功后在浏览器中打开 Power BI Service

分享方式

方式 适用场景 要求
直接分享 分享给特定同事 接收者需有 Pro 许可
应用 分发给整个团队/部门 创建者需有 Pro 许可
嵌入 嵌入到 Teams/SharePoint/网页 需配置嵌入权限
导出 PDF 不需要交互的场景 无特殊要求

自动刷新

发布到 Power BI Service 后,可以设置数据自动刷新:

  1. 在 Service 中找到数据集 → 设置 → 计划刷新
  2. 设置刷新频率(每日、每周等)
  3. 配置数据源凭据

实战:销售分析报表

用以下步骤完成一个完整的 Power BI 销售分析报表:

报表页面规划

页面 内容
概览页 KPI 卡片(GMV、订单、客单价)+ GMV 趋势 + 渠道占比
渠道分析页 渠道 GMV 对比 + 渠道效率散点图 + 渠道趋势
品类分析页 品类排名 + 品类趋势 + 品类 × 渠道交叉矩阵
明细页 可筛选的订单明细表格

设计技巧

  • 统一配色:整份报表用同一套色板,推荐 3-5 个主色
  • 对齐与间距:使用”格式” → “对齐”功能,保持图表间距一致
  • 书签:创建多个”视图状态”,让用户一键切换不同分析视角
  • 按钮导航:添加按钮,实现页面间跳转,提升用户体验
  • 工具提示页面:创建专门的工具提示页面,鼠标悬停时显示详细信息

小结

本篇覆盖了 Power BI 的核心知识:

  • 数据获取:Power Query 清洗与转换
  • 数据建模:星型模型、表关系
  • DAX 基础:度量值、计算列、时间智能函数
  • 可视化:常用视觉对象、条件格式
  • 发布分享:Power BI Service、自动刷新

Power BI 的进阶方向是深入学习 DAX(尤其是 CALCULATE、筛选上下文、行上下文),这会让你的分析能力产生质的飞跃。

掌握了 Tableau 和 Power BI 这两大 BI 工具后,下一篇我们学习 数据看板设计——不是工具操作,而是设计思维:如何从业务需求出发,设计一个真正有用的数据看板。