在 Excel 中创建瀑布图(简单教程+示例)

瀑布图是 Excel 中极具实用价值的数据可视化工具,能够直观呈现初始数值经过多轮增减变动后的结果。不管是预算拆解、盈亏分析,还是复盘销售业绩,瀑布图都能将枯燥的数字转化为逻辑清晰的业务故事。

本文将完整讲解 Excel 手动制作瀑布图的实操流程、C# 代码自动化生成方案,以及专业美化技巧,帮助你高效输出高质量分析图表。

什么是瀑布图

瀑布图用于展示数值持续累加、扣减后的累计变化。图表中悬浮的柱形如同搭建桥梁,完整还原从初始值到最终结果之间的每一步变化,清晰解释数值 “如何演变”。

瀑布图典型应用场景

使用场景 示例
财务报表 拆解从营业收入到净利润的盈亏流转过程
预算管控 直观体现各项支出、资金来源对整体预算带来的影响
库存分析 统计入库、销售、退货行为引发的库存数量波动
销售业绩 分析各产品线、各区域对整体业绩目标的贡献度
现金流分析 可视化企业资金流入、流出的完整过程

当你需要解释数值从 A 状态转变到 B 状态的完整链路,瀑布图是首选的可视化方案。

在 Excel 中手动创建瀑布图

Excel 2016、2019 以及 Microsoft 365 版本内置原生瀑布图功能,无需复杂操作,即可快速生成可用图表,适合绝大多数普通业务用户。

步骤1:准备数据

高质量图表的根基是规范的数据表。制作瀑布图至少需要两列:一列填写分类标签,一列填写对应数值。

✅ 关键要点:

  1. 代表增加的项目填写正数;
  2. 代表扣减、减少的项目填写带负号的负数;
  3. 首行、末行一般设置为合计值,不属于中间变动项。

以下是一个简单的月度现金流示例:

用于创建瀑布图的月度预算示例数据

步骤2:插入瀑布图

  • 选中完整数据区域,包含标签、数值两列以及表头;
  • 在顶部菜单栏切换至**“插入”**选项卡;
  • 在**“图表”**分组中,单击“插入瀑布图、漏斗图、股价图、曲面图或雷达图”按钮;
  • 从下拉菜单中选择瀑布图。

此时 Excel 会生成基础瀑布图,但效果并不达标:软件会把全部数据都识别为中间变动项。把起始值、终止值标记为合计,是整个制作流程最核心的一步。

在MS Excel中插入瀑布图图标

步骤3:标记合计柱形(关键)

Excel 无法自动识别合计项,需要手动指定哪些柱形代表期初、期末汇总数据。

  • 双击需要设置为合计的柱形;
  • 在右侧的“设置数据点格式”窗格中,勾选“设置为汇总”复选框;
  • 对结束余额柱形重复该操作。

设置完成后,合计柱形会直接贴合横轴,呈现标准瀑布图样式。

在MS Excel中创建经典瀑布图

若你更希望展示各项占比而非累计变化,可以在 Excel 中创建饼图来展示每个类别对整体的贡献。

使用 C# 编程自动生成瀑布图

面对批量报表、数据库联动报表的开发场景,可以借助 Free Spire.XLS for .NET 库,通过代码全自动生成瀑布图。该方案可复用性强,能够通过代码精细化管控合计项、标签、图表样式,避免人工操作带来的格式错误。

适合代码自动化的业务场景

当你需要执行以下操作时,使用Free Spire.XLS或类似的Excel自动化库:

  • 需要为几十份 Excel 文件批量生成统一规格的瀑布图;
  • 对接数据库,自动拉取数据生成业务报表;
  • 定时调度,自动输出周度、月度财务看板;
  • 规避手动调整图表格式造成的人为失误。

C# 代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using Spire.Xls;

namespace WaterfallChart
{
class Program
{
static void Main(string[] args)
{
//创建Workbook实例
Workbook workbook = new Workbook();

//加载示例Excel文档
workbook.LoadFromFile("Data.xlsx");

//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];

//向工作表添加瀑布图
Chart chart = sheet.Charts.Add(ExcelChartType.WaterFall);

//设置图表的数据范围
chart.DataRange = sheet["A1:B8"];

//设置图表的位置
chart.LeftColumn = 4;
chart.TopRow = 2;
chart.RightColumn = 12;
chart.BottomRow = 16;

//设置图表标题
chart.ChartTitle = "月度现金流";

//将图表中的特定数据点设置为总计或小计
chart.Series[0].DataPoints[0].SetAsTotal = true;
chart.Series[0].DataPoints[6].SetAsTotal = true;

//显示数据点之间的连接线
chart.Series[0].Format.ShowConnectorLines = true;

//显示数据点的数据标签
chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.HasValue = true;
chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.Size = 8;

//设置图表的图例位置
chart.Legend.Position = LegendPositionType.Top;

//保存结果文档
workbook.SaveToFile("瀑布图.xlsx");
workbook.Dispose();
}
}
}

核心代码:

  • ExcelChartType.WaterFall:将图表类型指定为瀑布图。
  • chart.DataRange:绑定图表的标签与数值数据源。
  • chart.Series[].DataPoints[].SetAsTotal:将对应数据点标记为合计,数组索引从 0 开始。
  • ShowConnectorLines:开启悬浮柱形之间的连接线。
  • DataLabels.HasValue:显示每个柱形对应的具体数值标签。

结果:

通过C#代码自动创建瀑布图

瀑布图专业美化技巧

原生生成的基础瀑布图可以满足快速分析需求,经过美化调整之后,图表会更加专业,适配正式报告、演示文稿。

1. 调整图表颜色

点击图表区域,唤起图表设计选项卡。既可以直接套用系统预设配色方案,也可以手动区分三类柱形的颜色:

  • 通用惯例: 增长项使用绿色,减少项使用红色,合计项使用区别于变动项的颜色,阅读者可以一眼读懂图表含义。

2. 添加数据标签

单击图表旁边的**(+)号,然后勾选数据标签**。正数柱形标签自动显示在柱体上方,负数柱形标签显示在柱体下方,避免文字重叠,读数更方便。

3. 精简冗余图表元素

移除不必要的网格线,将图表标题修改为描述性标题(例如“月度现金流瀑布分析”),并调整坐标轴刻度以消除多余的空白区域。

4. 统一字体与图表尺寸

选用正式、统一的字体;缩放图表大小,适配 Excel 看板、PPT、正式报告的排版,防止标签文字被截断。

自定义瀑布图设计以提高可读性

总结

Excel 2016 及以上版本自带原生瀑布图功能,制作流程十分简单:整理源数据 → 插入瀑布图 → 设置合计项 → 美化调整,即可把静态数字,转化为展示因果变化的可视化图表。

如果面对批量报表、自动化报表的开发场景,可以采用 C# + Free Spire.XLS 实现代码生成。无论手动制作还是代码生成,一张设计得当的瀑布图,都可以把复杂的财务、业务逻辑清晰传递给阅读者。

常见问题解答(FAQs)

Q:瀑布图可以用来展示月度销售数据吗?

答:完全可以。瀑布图非常适合分析月度销售增长、月度费用开支,以及展示各月增减项对累计值的贡献。

Q:Excel 2010、2013 旧版本能否使用原生瀑布图?

答:不能。原生瀑布图自 Excel 2016 版本才新增。旧版本只能利用堆积柱形图手动模拟瀑布图效果,建议升级 Excel 版本,降低图表维护成本。

Q:瀑布图可以导出成图片吗?

答:可以。右键点击图表区域,选择另存为图片,支持 PNG、JPEG、GIF 格式,方便放到 PPT 或者 Word 报告中。

Q:瀑布图是否支持多组数据系列?

答:Excel 原生瀑布图仅支持单个数据系列。如果需要做多组对比(例如两年数据对比),有两种方案:① 使用堆积柱形图(设置隐藏基准系列)手动模拟;② 分别制作两张独立的瀑布图并排摆放。