
在业务数据分析中,“累计趋势” 是衡量业务进展的核心视角 —— 无论是 “年度销售额累计达成情况”“月度用户增长累计规模”,还是 “区域业绩累计排名”,累计曲线都能直观呈现数据随时间的叠加变化,帮助决策者快速判断目标完成进度、识别增长拐点。作为主流的商业智能工具,PowerBI 通过 “DAX 度量值 + 可视化图表” 的组合,可灵活实现各类场景的累计曲线制作。本文将从业务价值出发,分步骤讲解累计曲线的制作逻辑、核心 DAX 公式、可视化配置及实战技巧,让新手也能快速上手。
累计曲线(又称 “累积折线图”)的核心是 “将某一指标按时间维度(或其他维度)逐步叠加,形成连续的趋势线”,其区别于普通折线图的关键在于 “数据的累加性”。在实际业务中,累计曲线的应用场景极为广泛,核心价值体现在三方面:
例如企业年度销售额目标 1000 万,通过 “月度销售额累计曲线”,可实时查看 “截至 3 月累计完成 300 万”“截至 6 月累计完成 580 万”,快速判断是否偏离目标节奏(如 6 月累计未达 50% 目标,则需调整下半年策略)。
普通折线图反映 “单周期数据波动”(如某月销售额骤降),而累计曲线更侧重 “长期叠加效果”—— 例如用户增长中,某月新增用户虽减少,但累计用户仍持续上升,说明业务基本面未恶化,避免因短期波动误判趋势。
可同时展示多个维度的累计趋势(如 “华东 / 华北 / 华南区域累计销售额对比”),快速识别头部区域与滞后区域,为资源倾斜提供数据依据。
在 PowerBI 中制作累计曲线,需满足两个核心前提:规范的数据模型与正确的日期表配置。若数据准备不充分,后续易出现 “累计数据错误”“日期筛选失效” 等问题。
需至少包含两类数据表格,且建立正确的关系:
订单 ID | 订单日期 | 销售额(元) | 区域 |
---|---|---|---|
OD2025001 | 2025-01-05 | 2800 | 华东 |
OD2025002 | 2025-01-12 | 1500 | 华北 |
OD2025003 | 2025-02-03 | 3200 | 华东 |
通过 DAX 公式生成包含 “年、月、日、季度” 等维度的日期表,并标记为 “日期表”(PowerBI 时间智能函数的前提):
// DAX公式:创建2025年完整日期表
日期表 =
ADDCOLUMNS(
// 生成2025年1月1日至2025年12月31日的连续日期
CALENDAR(DATE(2025,1,1), DATE(2025,12,31)),
"年份", YEAR([日期]), // 提取年份(如2025)
"年月", FORMAT([日期], "YYYY-MM"), // 格式化年月(如2025-01)
"季度", "Q"&FORMAT([日期], "Q"), // 提取季度(如Q1)
"月份序号", MONTH([日期]) // 月份序号(1-12,用于排序)
)
关键操作:生成日期表后,右键点击表格 → 选择 “标记为日期表” → “标记为日期表”,确保 PowerBI 识别其为时间维度表。
在 “模型” 视图中,将 “业务数据表” 的 “订单日期” 与 “日期表” 的 “日期” 字段建立 “一对多” 关系(业务表为 “多”,日期表为 “一”),确保筛选器可通过日期表联动业务数据。
PowerBI 中累计曲线的核心是 “编写累计 DAX 度量值”,再通过折线图可视化。根据业务需求,可分为 “基础单指标累计”“多维度分组累计”“动态筛选累计” 三类场景,以下逐一详解。
适用于 “单一指标按时间累计” 的场景,例如 “2025 年各月销售额累计”,核心是通过 DAX 的CALCULATE
+FILTER
函数实现 “截至当前时间的指标累加”。
// 基础累计度量值:截至当前日期的销售额累计
累计销售额(基础版) =
CALCULATE(
SUM('销售数据表'[销售额(元)]), // 待累计的指标(求和销售额)
FILTER(
ALL('日期表'[日期]), // 忽略日期表中“日期”字段的筛选器(确保累计范围完整)
'日期表'[日期] <= MAX('日期表'[日期]) // 筛选“小于等于当前最大日期”的数据(实现累计)
)
)
公式解析:
SUM('销售数据表'[销售额(元)])
:计算目标指标(销售额)的总和;
ALL('日期表'[日期])
:清除 “日期” 字段的默认筛选(如页面筛选的 “2025-03”,确保累计从年初开始);
'日期表'[日期] <= MAX('日期表'[日期])
:对日期进行范围筛选,仅保留 “截至当前行最大日期” 的数据(如当前行日期为 2025-03-31,则累计 1-3 月数据)。
点击左侧 “可视化” 面板中的 “折线图”;
X 轴:拖入 “日期表” 的 “年月” 字段(确保时间顺序正确,可通过 “月份序号” 排序);
Y 轴:拖入刚创建的 “累计销售额(基础版)” 度量值;
优化配置:
点击 “格式” → “数据标签” → 开启 “数据标签”,直观显示每个月的累计金额;
调整 “线条颜色”“粗细”,提升图表可读性;
若 X 轴 “年月” 显示拥挤,可设置 “角度” 为 - 45°(格式 → X 轴 → 文本角度)。
年月 | 累计销售额(元) |
---|---|
2025-01 | 4300 |
2025-02 | 7500 |
2025-03 | 12100 |
折线图将呈现从 1 月到 12 月逐步上升的累计趋势,清晰展示销售额叠加效果。 |
适用于 “按维度对比累计趋势” 的场景,例如 “华东、华北、华南区域 2025 年销售额累计对比”,核心是在基础 DAX 公式中保留 “分组维度” 的筛选器。
基础版度量值中ALL('日期表'[日期])
仅清除 “日期” 筛选,若需保留 “区域” 筛选(如仅累计华东区域数据),需调整为ALLSELECTED('日期表'[日期])
(保留其他维度的筛选器):
// 分组累计度量值:支持区域等维度筛选
累计销售额(分组版) =
CALCULATE(
SUM('销售数据表'[销售额(元)]),
FILTER(
ALLSELECTED('日期表'[日期]), // 保留除日期外的其他筛选器(如区域、产品)
'日期表'[日期] <= MAX('日期表'[日期])
)
)
关键差异:ALLSELECTED
vs ALL
ALL
:清除指定字段的所有筛选(如仅清除日期筛选,保留区域筛选);
ALLSELECTED
:保留用户手动设置的筛选器(如切片器选择的 “华东 + 华北”),更适合多维度对比场景。
新建折线图,X 轴仍用 “日期表” 的 “年月”;
Y 轴拖入 “累计销售额(分组版)”;
图例:拖入 “销售数据表” 的 “区域” 字段(自动按区域生成多条累计曲线);
交互优化:添加 “区域” 切片器,用户可自由选择需对比的区域(如仅看华东和华南),折线图会实时更新。
折线图将显示 3 条曲线,分别对应华东、华北、华南区域的累计销售额趋势,可直观对比 “华东累计始终领先”“华北 3 月后增速加快” 等差异。
适用于 “需根据用户筛选动态更新累计范围” 的场景,例如 “通过日期切片器选择‘2025-01 至 2025-06’,累计曲线仅显示该时间段内的累计”,核心是利用MAX('日期表'[日期])
响应筛选器。
动态累计无需修改 DAX 公式,分组版度量值ALLSELECTED('日期表'[日期])
已支持响应日期筛选器,例如:
当用户通过切片器选择 “2025-02 至 2025-04”,MAX('日期表'[日期])
会变为 2025-04-30,累计范围自动调整为 2-4 月;
若选择 “2025-05-10” 单个日期,累计范围为 “截至 5 月 10 日的所有数据”。
点击 “可视化” 面板中的 “切片器”;
拖入 “日期表” 的 “日期” 字段,设置切片器类型为 “介于”(支持选择日期范围);
测试交互:选择 “2025-03-01 至 2025-05-31”,折线图的累计曲线将从 3 月开始,截至 5 月结束,动态匹配筛选范围。
结合实际业务需求,在累计曲线基础上添加 “目标线”,形成 “实际累计 vs 目标累计” 的对比图表,帮助判断目标达成情况。
假设企业 2025 年每月销售额目标为 5000 元,年度目标 60000 元,可通过 “新建表” 录入目标数据:
// 新建销售额目标表
销售额目标表 =
DATATABLE(
"年月", STRING, "月度目标(元)", INTEGER,
{
{"2025-01", 5000}, {"2025-02", 5000}, {"2025-03", 5000},
{"2025-04", 5000}, {"2025-05", 5000}, {"2025-06", 5000},
{"2025-07", 5000}, {"2025-08", 5000}, {"2025-09", 5000},
{"2025-10", 5000}, {"2025-11", 5000}, {"2025-12", 5000}
}
)
建立 “销售额目标表” 与 “日期表” 的关系(通过 “年月” 字段关联)。
// 累计目标度量值
累计销售额目标 =
CALCULATE(
SUM('销售额目标表'[月度目标(元)]),
FILTER(
ALLSELECTED('日期表'[年月]),
'日期表'[年月] <= MAX('日期表'[年月])
)
)
折线图 X 轴:“日期表”[年月];
Y 轴:添加 “累计销售额(分组版)” 和 “累计销售额目标” 两个度量值;
图例:自动显示 “累计销售额(分组版)”“累计销售额目标”,可重命名为 “实际累计”“目标累计”;
格式优化:将 “目标累计” 线条设置为 “虚线”,颜色改为红色,与 “实际累计” 的蓝色实线形成对比。
若 “实际累计” 曲线在 “目标累计” 上方(如 3 月实际累计 12100 元,目标累计 15000 元 → 未达标);
若 6 月实际累计 32000 元,目标累计 30000 元 → 超额达标,可通过数据标签直观查看差额。
在制作累计曲线时,新手易遇到 “数据错误”“图表异常” 等问题,以下是高频问题的排查方法:
原因:业务数据表存在重复行(如同一订单被多次录入),或表关系设置错误(如 “多对多” 关系)。
解决方案:
检查业务数据:通过 “表格可视化” 展示原始数据,排查重复行(可使用DISTINCTCOUNT('销售数据表'[订单ID])
验证订单唯一性);
修正表关系:确保 “日期表” 与 “业务表” 为 “一对多” 关系(日期表为 “一”,业务表为 “多”),避免 “多对多” 关系导致的重复计算。
原因:未使用独立日期表,直接用业务表的 “订单日期”(如周末无订单,日期缺失导致断点)。
解决方案:
删除业务表的 “订单日期”,改用独立 “日期表” 的 “日期” 字段;
确保日期表覆盖完整时间范围(如全年 365 天),无日期缺失。
原因:FILTER
函数中误清除了分组维度的筛选器(如用ALL('日期表')
而非ALL('日期表'[日期])
,清除了日期表的所有字段筛选)。
解决方案:
对于按年、季、月的累计,可使用 PowerBI 的时间智能函数(如TOTALYTD
/TOTALQTD
/TOTALMTD
)简化公式,减少手动编写FILTER
的复杂度:
// 按年度累计(时间智能函数版)
累计销售额(年度) = TOTALYTD(SUM('销售数据表'[销售额(元)]), '日期表'[日期])
// 按季度累计(时间智能函数版)
累计销售额(季度) = TOTALQTD(SUM('销售数据表'[销售额(元)]), '日期表'[日期])
优势:TOTALYTD
自动识别 “年度” 范围,无需手动筛选 “小于等于当前日期”,公式更简洁。
避免使用 “累计 1”“销售额 2” 等模糊命名,建议按 “指标 + 维度 + 场景” 命名,例如:
“累计销售额(区域对比版)”;
“累计用户数(年度目标对比)”,方便团队协作时快速理解度量值用途。
根据业务需求选择合适的时间粒度(日、周、月、季):
业务监控(如日报):用 “日” 粒度累计;
战略复盘(如季报):用 “月” 或 “季” 粒度累计,避免粒度过细导致图表拥挤。
除了目标线,还可添加 “平均值线”“达标线(如目标 80%)”,帮助更全面分析:
点击折线图 → “分析” → “参考线” → “添加”;
选择 “Y 轴”,设置参考线类型(如 “固定值”“平均值”),例如设置 “固定值” 为 40000(年度目标的 66.7%),直观判断是否达成年中目标。
PowerBI 制作累计曲线的核心并非复杂的可视化操作,而是对 “累计逻辑的 DAX 实现” 与 “数据模型的合理设计”—— 独立日期表是基础,正确的 DAX 度量值是核心,场景化的可视化配置是关键。无论是单指标累计、多维度对比,还是动态筛选,只要掌握 “数据准备→DAX 编写→可视化配置” 的流程,结合时间智能函数与实战技巧,就能快速制作出贴合业务需求的累计曲线。
在实际应用中,累计曲线并非孤立存在,可结合切片器、卡片图、表格等组件,构建完整的 “业务进度监控仪表盘”(如 “年度销售额累计仪表盘” 包含累计曲线、目标达成率卡片、区域排名表格),让数据更直观地支撑决策。对于新手而言,建议从基础单指标累计入手,逐步尝试分组累计与目标对比,通过反复调试 DAX 公式与可视化配置,熟练掌握累计曲线的制作方法。
若你在实操中遇到具体问题(如某类数据的累计公式编写、特定场景的图表优化),可提供详细的业务场景与数据结构,我会进一步给出针对性解决方案。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
Excel 能做聚类分析吗?基础方法、进阶技巧与场景边界 在数据分析领域,聚类分析是 “无监督学习” 的核心技术 —— 无需预设分 ...
2025-09-29XGBoost 决策树:原理、优化与工业级实战指南 在机器学习领域,决策树因 “可解释性强、处理非线性关系能力突出” 成为基础模型 ...
2025-09-29在标签体系的落地链路中,“设计标签逻辑” 只是第一步,真正让标签从 “纸上定义” 变为 “业务可用资产” 的关键,在于标签加 ...
2025-09-29在使用 Excel 数据透视表进行多维度数据汇总时,折叠功能是梳理数据层级的核心工具 —— 通过点击 “+/-” 符号可展开明细数据或 ...
2025-09-28在使用 Pandas 处理 CSV、TSV 等文本文件时,“引号” 是最容易引发格式混乱的 “隐形杀手”—— 比如字段中包含逗号(如 “北京 ...
2025-09-28在 CDA(Certified Data Analyst)数据分析师的技能工具箱中,数据查询语言(尤其是 SQL)是最基础、也最核心的 “武器”。无论 ...
2025-09-28Cox 模型时间依赖性检验:原理、方法与实战应用 在生存分析领域,Cox 比例风险模型(Cox Proportional Hazards Model)是分析 “ ...
2025-09-26检测因子类型的影响程度大小:评估标准、实战案例与管控策略 在检测分析领域(如环境监测、食品质量检测、工业产品合规性测试) ...
2025-09-26CDA 数据分析师:以数据库为基石,筑牢数据驱动的 “源头防线” 在数据驱动业务的链条中,“数据从哪里来” 是 CDA(Certified D ...
2025-09-26线性相关点分布的四种基本类型:特征、识别与实战应用 在数据分析与统计学中,“线性相关” 是描述两个数值变量间关联趋势的核心 ...
2025-09-25深度神经网络神经元个数确定指南:从原理到实战的科学路径 在深度神经网络(DNN)的设计中,“神经元个数” 是决定模型性能的关 ...
2025-09-25在企业数字化进程中,不少团队陷入 “指标困境”:仪表盘上堆砌着上百个指标,DAU、转化率、营收等数据实时跳动,却无法回答 “ ...
2025-09-25MySQL 服务器内存碎片:成因、检测与内存持续增长的解决策略 在 MySQL 运维中,“内存持续增长” 是常见且隐蔽的性能隐患 —— ...
2025-09-24人工智能重塑工程质量检测:核心应用、技术路径与实践案例 工程质量检测是保障建筑、市政、交通、水利等基础设施安全的 “最后一 ...
2025-09-24CDA 数据分析师:驾驭通用与场景指标,解锁数据驱动的精准路径 在数据驱动业务的实践中,指标是连接数据与决策的核心载体。但并 ...
2025-09-24在数据驱动的业务迭代中,AB 实验系统(负责验证业务优化效果)与业务系统(负责承载用户交互与核心流程)并非独立存在 —— 前 ...
2025-09-23CDA 业务数据分析:6 步闭环,让数据驱动业务落地 在企业数字化转型中,CDA(Certified Data Analyst)数据分析师的核心价值,并 ...
2025-09-23CDA 数据分析师:以指标为钥,解锁数据驱动价值 在数字化转型的浪潮中,“用数据说话” 已成为企业决策的共识。但数据本身是零散 ...
2025-09-23当 “算法” 成为数据科学、人工智能、业务决策领域的高频词时,一种隐形的认知误区正悄然蔓延 —— 有人将分析结果不佳归咎于 ...
2025-09-22在数据分析、金融计算、工程评估等领域,“平均数” 是描述数据集中趋势最常用的工具之一。但多数人提及 “平均数” 时,默认指 ...
2025-09-22