Power BI Report 中更佳的 KPI Visual:全面指南

此内容由人工智能翻译,尚未经过人工编辑审核。图像和图表保持其原始语言。

要点速览

  • KPI(Key Performance Indicators,也就是“Big Numbers”)是页面上影响力最大的 Visual。 它们是读者第一眼看到的内容,旨在传递最重要的信息,并概览整体情况。
  • 少而精、用于推动行动的 KPI,比一面数字墙更有效。 将页面指标限制为五个或更少,并确保这些指标能驱动决策,以让读者保持聚焦。 顶部摆上一打“裸数字”,读者还没看完第四个 KPI,工作记忆就已经不堪重负了。
  • 没有上下文的数字,就只是一个数字。 只展示“518M”,却没有目标、趋势或基线,会迫使读者去猜这到底是好是坏。 目标、差距和趋势,才是让一个指标变成“可行动信息”的关键。
  • 每一项格式选择,都应该有所贡献。 大小层级告诉读者该先看哪里。 条件着色能告诉读者这是好还是坏。 数字四舍五入可以减少干扰。 如果某个选择不能让读者更快理解,那它就不该出现。
  • 实现方式会影响 Report 的“寿命”。 基于 SVG 的卡片和新版卡片 Visual 的各种变通方案,Demo 看起来很惊艳,但维护起来很脆弱。 Deneb、经过认证的 Custom visual 以及内置的 KPI visual,更适合需要团队长期维护的 Report。

本摘要由作者撰写,并非由 AI 生成。


交互式摘要

时间不够? 这里有一份可交互的文章摘要。 点击圆点或按钮即可逐步浏览

KPI:你首先看到的内容

本文将解释如何为 Report 和 Dashboard 设计更好的卡片和 KPI Visual。 本文更关注设计层面的决策,帮助你为你的用户……设计真正有效的内容;并不是一篇通过各种 UI 微调与修改来套用某个指定模板效果的教程。 下图展示了其中一种改进:左侧是默认卡片(仅做了少量字体样式调整),右侧是改进后的版本:

V009 Figure 2 - Side-by-side comparison of the starting point and the end result. The left card shows a bare number: 518M with a small Orders MTD label. The right card is the fully contextualized KPI with a concise label, bold headline number, target from last year, color-coded gap, and a 30-day sparkline with moving average and today callout

为什么要在 Report 或 Dashboard 上显示大数字?

在 Dashboard 中,一个大数字或 KPI 往往是读者视线最先落到的地方。 页面顶部的大数字,会为下面所有内容定下基调。 如果这个数字显示你落后于目标,你阅读 Report 其余内容时的心态,会和你领先目标时完全不同。 单个 Visual 就有这么大的影响力。 而且,团队往往在这个 Visual 的设计上花的时间最少。 把一张卡片拖到画布上,选一个度量值,就搞定了。 虽然这个数字在技术上是正确的,但还不够。

请看下面这个缺乏上下文的数字示例,它分别出现在默认卡片 Visual 和新版卡片 Visual 中:

bare-number

“518M”。 这算好吗? 差吗? 是在变好,还是变差? 需要有人采取行动,还是照常运营就行? 光靠这个数字,回答不了任何一个问题——读者只能凭记忆,或根据页面上其他内容,自己补齐上下文。 对大多数人来说,在大多数指标上,这种上下文很容易被解读出细微差异。 对于 Report 页面上最有影响力的那个 Visual 来说,这很糟。

这其实是人类认知中一个有充分研究证据支持的局限——也是我们在打造更好表格的指南里讨论过的同一个问题:大脑通过对比来判断量级。 如果没有可对比的基准——目标、平均值、上一周期——这个数字就像悬在真空里,毫无意义。 接下来,这个真空就会被各种假设填满,不管这些假设是否站得住脚。

解决这点在技术上并不难。 难点——和表格一样——在于做取舍:哪些数字值得放到 Dashboard 页面上、它们需要什么上下文,以及该如何呈现,才能让读者不用花太多心思就能理解传达的信息。

减少 KPI,聚焦重点

V009 Figure 4 - A Dashboard header with ten KPI cards in two rows of five, showing metrics like Rev. YTD, Ord. MTD, Tot. Orders, Margin %, vs. Target, Customers, Returns, Avg Order, Units Sold, and New Cust. The bottom row fades out, illustrating that working memory is full before a reader can absorb them all

在优化任何单个 KPI 之前,先处理最常见的问题:KPI 太多。 在顶部横向排列着八、十或十二张卡片的 Report 中,每一张都在争夺注意力。 读者的工作记忆在看完它们之前就已经满了。

工作记忆的限制并不是随便来的。 工作记忆大概只能容纳三到四块信息。 一页只有四个 KPI,读者能把全貌记在脑中;一页有十二个,则迫使他们扫视、遗忘、再扫视。 认知成本会叠加:读者处理到第六张卡时,第一张的内容已经淡出脑海了。 如果页面还需要多覆盖一个角度,五个是比较现实的上限。

难的是选对 KPI。 做出这个选择,需要先弄清读者打开这页时最想知道的问题——这和我们数据可视化最佳实践 Visual 指南里“从问题出发”的原则完全一致。 如果页面要回答的是“我们每月订单目标完成得怎么样?”,那 KPI 就应该直接服务于这个问题,以及最可能出现的后续问题。 其他内容不管单看多有趣,放在这里都是噪音。 如果某个指标不能帮助回答页面的核心问题,那它就不该出现在页面上。

选择能推动行动的指标

不是所有指标都同样有用。 有些指标只是在描述活动,却指向不了决策,比如 Total Orders。 它只会一路上升(但愿如此);却几乎反映不出当前业务的状况。 更好的做法是展示对比指标,比如 Orders vs. PY:

vanity-vs-actionable一个很实用的经验法则是:对页面上的每个 KPI,都问一句“如果这个数字变化了 20%,是否应该有人采取不同的行动?”。 如果答案是否定的,这个指标也许挺有意思,但最终不会带来任何行动。 它不配占据页面上的位置。

这就是虚荣指标和可行动指标之间的关键区别。 虚荣指标看起来信息量十足——会上升也会下降——但它们并不会改变读者接下来该做什么。 可行动指标会让读者面临一个分岔:如果数字高于某个阈值,就做X;如果低于,就做Y。 不过,我们确实可以把Total Orders Orders MTD 这样的指标变得可行动。 当然,要做到这一点,你必须传达某种目标或阈值:要么直接显示目标值,要么使用 Visual 条件格式在视觉上表达。

用目标与差距提供上下文

当页面上放对了指标之后,给读者一个用来判断的基准。 目标值会把一个数字变成结论:领先还是落后:

V009 Figure 6 - Before-and-after comparison of a KPI card. The left card shows Orders MTD as a bare number, 518M. The right card adds a target (MTD LY 483M) and a gap (35.4M, 7.3% above target), turning the number into a verdict

和团队一起定目标值。 太容易了,没人会去挑战自己。 目标太激进,又会失去可信度。 好的目标来自真正对该指标负责的人;他们知道什么是现实,什么是离谱。 当实际表现数据出来后,准备好重新审视这个数字。

展示三样东西:实际值、目标值,以及两者之间的差距。 差距是最重要的元素,因为它能回答“这算好还是坏?”,而不需要读者自己做计算。 没有差距,读者就得算 518 减 483,再判断 35M 算不算多——这取决于基数;而基数很可能已经忘了,因为还有另外六个 KPI 在争夺注意力。

用绝对值和百分比两种方式表达差距;不同读者对尺度的直觉不同。 绝对值告诉你超额或未达成的幅度;百分比告诉你,相对于目标,这个幅度是否重要。

添加趋势与基线

目标值能告诉你现在处于什么位置,但无法给出方向感。 趋势能告诉你正在往哪里走。 两者对决策都重要:高于目标但趋势下滑,和高于目标且还在加速,是完全不同的情况。 基线——平均值、中位数,或具有代表性的过往周期——能让你知道什么是“正常”。 火花线能显示方向。 它们一起回答:“这是常态,还是正在发生变化?”

当我们把趋势线作为上下文加进去,再看看 Orders MTD 卡片:

target-vs-trend

趋势展示的是每日差距,并以目标值为参照。 我们也可以选择把Orders MTD vs Target MTD作为两条独立序列来展示,但累计类指标通常不太适合放在横向容器里(说实话……)。 现在,除了每日差距之外,我们还加入了一条移动趋势线。 这是因为离群值会把曲线拉出尖峰或深谷,让人难以看清走势的演变。 移动平均可以平滑噪声,让趋势演变更清晰。

也正是在这里,KPI 才开始在页面上真正发挥价值。 单看这个数字其实没什么用…… 有了目标值,它就更有用了——相当于给出了一个判断。 所以,总结一下:目标值和趋势能为读者提供有用的上下文,帮助理解指标所传达的好坏倾向,从而指导后续行动。 你还可以通过一些条件格式让它更上一层楼。

有目的地进行格式化

最后一步是格式化——但要把格式化当作一种沟通方式。 每一项 Visual 方面的选择都应强化 KPI 要传达的信息。 对比一下在我们仅仅加上颜色后,前后效果有什么不同:这样就能含蓄地传达什么是 好 (蓝色),什么是 (红色):

default-vs-formatted当你应用格式时,可以考虑下面这些方面:

  • 尺寸层级。 主要数值应该是最大的元素。 目标值和差距应更小一些。 趋势应尽量紧凑。 阅读时,视线应先落在数字上,然后是判定结果,最后才是上下文。
  • 条件颜色和符号。 颜色应能让你一眼看出高于/低于目标值。 再配合方向符号,这样信号就不只依赖颜色。 两者都应用在差距上,而不是主值——因为差距才是评判依据。 主值告诉你“有多大”;差距告诉你好坏。
  • 数字格式。 能四舍五入就四舍五入。 “518M”比“517,893,412”更好,因为在 KPI 层面,过高精度并没有帮助。 精确值应该放在下方的明细表里。 页面上所有 KPI 的小数位数和单位要保持一致。
  • 标签和标题。 尽量短,但要有意义。 用“Orders MTD”替代“Month-to-Date Order Value (EUR, excl. returns)”。 如果一个指标需要这么多限定条件,那么语义模型里的定义很可能还不够清晰。
警告

设计条件格式的配色方案时,要考虑你的受众。 有些人很难区分绿色和红色。 只用绿/红两种颜色来表示好/坏,会让他们只能靠猜——这正是我们要避免的。 蓝/橙色是一种常见且更无障碍的替代方案;再配合箭头符号等第二提示,即使读者对颜色的感知不同,信息也能清晰传达。 区域设置背景也很重要:在大多数西方文化中,红色代表危险或亏损;但在许多东亚文化中,红色则象征兴旺与好运。 如果你的受众同时涵盖两种文化,就选一套不依赖任何一方颜色联想的配色方案。

全面改造

我们用五个步骤把“裸数字”变成有上下文的 KPI:减少 KPI 数量、选择可采取行动的指标、添加目标、添加趋势、按意图格式化:

the-full-make-over

最开始只是一个毫无意义的数字“518M”,现在可以让读者一眼看出:表现是好是坏、是在改善还是下滑、是否值得关注。 数字没变,但周围的上下文赋予了它意义。 你不再需要猜 518M 是好是坏,也不用再猜它是不是在朝着正确的方向发展。 KPI 在问题出现之前就把答案给了你。

在 Power BI 中用哪些 Visual

你可以用多种 Visual 来制作卡片和 KPI。 选哪一种更多是偏好问题,但也有一些取舍需要考虑。

推荐:内置 KPI Visual

带折线图的原生 KPI Visual 经常被低估。 它以紧凑的形式展示数值、目标和趋势,并支持条件格式…… 开箱即用(或多或少)即可覆盖全部改造步骤。 对很多使用场景来说,这已经绰绰有余了。

推荐:经认证的 Custom visual

AppSource 上有不少来自认证发布者的专用 KPI Visual,专为目标、趋势和条件格式而设计。 在你自己动手做定制之前,值得先评估一下它们。

推荐:Deneb

如果你的团队想要更多控制力,Deneb 能在 Power BI 里提供 grammar-of-graphics 的灵活性。 你可以用声明式的 Vega 或 Vega-Lite 规范来定义这个 Visual(可读、可套主题、可修改),而不是在 DAX 里拼接 SVG 字符串。 它保留完整的交互性,表达能力也足够强,能做出本文展示的任何 KPI 布局。 上手会有一定学习曲线(当然,AI 确实把门槛压低了),但如果能在多个 Report 中持续一致地复用,这份投入就很值。 另一个可能的替代方案是 HTML content Visual,它和 Deneb 出自同一位作者。

说实话,如果你确实需要定制,我们更推荐用 Deneb 走 Vega/Vega-Lite 这条路线。 这是我们觉得现在值得继续投入的方向,尤其是 AI 和编程代理让它更容易了。 市场上已经有多个厂商释放出明确信号:Vega 很可能会成为 BI Report 和 Dashboard 的未来方向之一!

灵活但成本高:基于 SVG 的 KPI 卡片

在 Power BI 里,你可以创建 DAX 度量值,用它来定义一个由数据驱动的 SVG(可缩放矢量图形)图像规范。 这本质上是在用 DAX 做一个 Custom visual,而且在 Power BI 社区里正变得非常流行。 这也不难理解;它们确实非常 灵活。 正如我们在表格那篇文章里提到的,基于 SVG 的微型 Visual 能比 Power BI Report 内置的迷你图做到更多。 KPI 卡片也是一样:一个 SVG 度量值可以把数值、目标、差距和趋势整合到同一个 Visual 中。

代价是维护成本。 SVG DAX 说到底就是字符串拼接…… 它不好改、无障碍工具读不到、也不会随主题变化自动适配;而且如果不了解完整结构,换个开发者或 AI 代理来改都会很吃力。 如果一张 KPI 卡片需要在目标调整、格式变更或新增指标时更新,这些额外开销会越积越多。 不过,如果你确实打算用 SVG,请务必配合 DAX 函数使用来自 DaxLib 的社区库。

这个取舍值不值得,取决于你的具体情况。 对于由一人维护、面向管理层且经过精心打磨的 Report,这种做法效果不错。 对于由团队在数月甚至数年内维护的 Report,上述替代方案更省心。 与 Vega/Vega-Lite 不同,我们实际上建议你今后在这些基于 SVG 的方案上投入 更少;它过于脆弱,而且难以扩展。

那新的卡片 Visual 呢?

这款 新卡片 Visual(自 2025 年十一月起 GA)在 Report 中原生支持一些关键的 KPI 格式选项:多卡片布局、用于对比的参考标签,以及基于筛选语境的条件格式。 对于带目标值和差距的数值,它能胜任。 不过,这个 Visual 伴随着高昂的“点击税”;要把一张定制卡片的格式调到“刚刚好”,往往要点几十下——有时甚至上百下。 这不是对你时间的高效利用,尤其是在有辅助型 AI 工具和编码代理的情况下(即便使用 skills 和 MCP 服务器,它们也很难操作脆弱的 PBIR 元数据)。

另外,新卡片 Visual 原生不支持迷你图或趋势线。 要在卡片里加入趋势,就意味着要用 SVG 变通方案——以及前面提到的全部维护成本——或者在卡片旁边再放一个独立的小 Visual。 所以,你可能更适合直接改用原生折线图、面积图或条形图,并通过条件标题和副标题来显示数值;如果大家感兴趣,我们可以在后续教程文章里演示(欢迎在下方评论告诉我们)。

进一步推荐阅读

结论

KPI 卡片之所以值得出现在 Report 上,是因为它能在读者无需思考的情况下回答 "这是好还是坏,而且是在变好还是变坏?"。 这需要语境:目标、趋势,以及能强化信息的格式设置。 五个步骤——限制 KPI 数量、选择可驱动行动的指标、加入目标、加入趋势、有目的地做格式设置——是一条从裸数字走向可用信号的务实路径。 在 Power BI 里构建这些 Visual 时,与其追求今天最“炫”的方案,不如优先选择能长期维护的工具。

Related articles