在 Excel 中制作热图(Heatmap)通常有两种主要方式:一种是使用内置的“条件格式”(最简单、最常用),另一种是使用VBA 或插件(适合更复杂的需求)。
以下是使用 Excel 内置条件格式 制作热图的详细步骤,适用于 Excel 2010 及以上版本(包括 Microsoft 365)。
✅ 方法一:使用“条件格式”制作热图(推荐)
这是最快捷的方法,无需编写代码。
步骤 1:准备数据
假设你的数据在 A1:C5 区域,
| A | B | C | |
|---|---|---|---|
| 1 | 项目1 | 项目2 | 项目3 |
| 2 | 10 | 25 | 5 |
| 3 | 30 | 15 | 40 |
| 4 | 5 | 20 | 10 |
步骤 2:选中数据区域
选中包含数据的单元格区域(A2:C4)。
步骤 3:应用条件格式
- 点击顶部菜单栏的 “开始” (Home) 选项卡。
- 点击 “条件格式” (Conditional Formatting)。
- 选择 “色阶” (Color Scales)
。
- 你会看到几种预设方案:
- 绿-黄-红:绿色代表高值,红色代表低值(或反之,取决于设置)。
- 红-黄-白:红色代表高值,白色代表低值。
- 蓝-白-红:蓝色代表低值,红色代表高值。
💡 提示:点击“色阶”右侧的箭头,选择 “其他规则” (More Rules) 可以自定义颜色、最小值和最大值。
步骤 4:自定义颜色(可选)
如果你想更精确地控制:
- 在“色阶”中选择 “其他规则”。
- 在“编辑格式规则”对话框中:
- 格式样式:选择“色阶”。
- 最小值:设置类型(如“最小值”)、颜色(如蓝色)。
- 最大值:设置类型(如“最大值”)、颜色(如红色)。
- 中间值:可设置为黄色或绿色,类型可选“百分比”或“数字”。
- 点击 “确定”。
步骤 5:调整显示效果(可选)
- 隐藏网格线:点击 “视图” (View) → 取消勾选 “网格线” (Gridlines),使热图更清晰。
- 添加数据标签
:如果数值太小看不清,可以保留数字显示;如果数值太大,可在条件格式中勾选 “仅显示颜色” (Show Color Only) 来隐藏数字。
📊 方法二:使用“数据条”或“图标集”(简化版)
如果你只需要大致趋势,可以使用更简单的条件格式:
- 选中数据区域。
- 条件格式 → 数据条 (Data Bars):用不同长度的条形表示数值大小。
- 条件格式 → 图标集 (Icon Sets):用箭头、旗帜等图标表示高低。
⚠️ 注意事项
- 数据范围:确保只选中数值区域,不要包含标题行,否则条件格式可能出错。
- 负值处理:如果数据包含负数,Excel 会自动将最小值(负数)设为一种颜色,最大值(正数)设为另一种颜色,中间值为白色或中性色。
- 性能问题:如果数据量非常大(如超过 10,000 行),条件格式可能会使 Excel 变慢,此时建议使用 Power BI 或 Python(Matplotlib/Seaborn)来处理。
🛠️ 高级技巧:使用 VBA 创建动态热图
如果你需要更复杂的逻辑(如根据特定条件变色),可以使用 VBA:
- 按
Alt + F11打开 VBA 编辑器。 - 插入模块,粘贴以下代码示例:
Sub CreateHeatmap()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Set ws = ActiveSheet
Set rng = ws.Range("A2:C4") ' 修改为你的数据范围
For Each cell In rng
If cell.Value > 30 Then
cell.Interior.Color = RGB(255, 0, 0) ' 红色
ElseIf cell.Value > 15 Then
cell.Interior.Color = RGB(255, 255, 0) ' 黄色
Else
cell.Interior.Color = RGB(0, 255, 0) ' 绿色
End If
Next cell
End Sub
运行宏即可。
| 方法 | 适用场景 | 难度 |
|---|---|---|
| 条件格式 – 色阶 | 快速可视化数据分布,日常办公 | ⭐ 简单 |
| 条件格式 – 数据条 | 比较数值大小,简洁明了 | ⭐ 简单 |
| VBA 宏 | 需要自定义逻辑或动态更新 | ⭐⭐⭐ 中等 |
| Power BI / Python | 大数据量或复杂分析 | ⭐⭐⭐⭐ 高级 |
对于大多数用户,方法一(条件格式 – 色阶) 是最实用且高效的选择。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/487122.html



