# 如何在 Numbers 表格中检查单元格的反向引用

> 本文开放前 70% 正文，剩余内容会员可见。

原文：https://utgd.net/article/21173

每个单位总流传着一些赛博活化石，比如不知道出自哪一届前辈之手的超复杂电子表格。

最近我接手一个案件时，也遇到一个本息分期计算表，听上去好像只是小学算术级别的问题，但是利息、还款、先本后息、计息基础（因为案件跨度多年，法律和政策也在变动）等几条规则一综合，结果就是一张谁也无法理解全貌（注意是不想理解）的表格。

真正的技术问题在于单元格之间的引用。本例中，我发现有一列数据为负，现实中不存在还了“负一百块钱”这种情况，这列数据要么错了，要么只是辅助值，稍后会被纠正或有其他用处，然而，我不确定。

因为 Numbers 没有依赖检查功能（鉴于我一年接触的表格屈指可数，我不会装也不会学 Excel）。详言之，不少单元格中的数据基于其他格子计算而来，但你只能检查特定单元格引用了谁，却无法得知谁引用过当前的格子。因而，我也不确定眼前这列明显不符合实际的数据究竟有何用处（显然，我没有时间检查整个表格并尝试理解它，那我不如从头开始做）。

如果有助于你理解的话，可以把 Excel 想象成现代的卡片笔记软件，可以显示引用和被引用两层关系，但 Numbers 还处于上一代，只能显示单向的引用。当我好奇目前某列数据被用于何处时，Numbers 就力有未逮。

在不更换表格工具的前提下，我想到一种低技术的检查方式：把表格展平，将其中的公式暴露出来，然后当作纯文本处理，理论上就能找到所有引用关系。这就像笔记中的双向链接一样，原则上可以还原为简单的搜索操作。

假设在最简单的情况下，你的表格中只有一张表单（sheet），并且只有一个表（table），那么操作如下：

首先，创建一张新的临时表单，删除其中的所有内容（连同 table 一起删干净），再把原表单中的表复制过来，接着清除内容，只留空表。理论上你也可以不清空，但是残留内容可能导致部分单元格的公式显示错误，而我没有自信区分错误来自残留内容还是我手抖按错键盘。

随后，选中新表单中的整个表（快捷键 ⌘Command\-A），运行文末的 AppleScript 代码，即可将原表单中的公式以纯文本形式复制到新表单中，不妨视作原表单已被展平，就像房屋已经被解构为平面图，更方便分析。

展平后的表格就是一堆文本，公式都暴露在里面，而被引用的单元格也一览无遗，如果我想知道貌似有问题的单元格是否还有特殊用途，只需搜索其座标（例如 L17），就能看到所有引用该单元格的地方。很幸运，检查之后我确信，这一列数据确实只是辅助值，并不影响最终结果。

还有一种特殊情况，即某些位置可能引用了一片区域而非单个格子，此时得另寻一款支持正则表达式的工具，搜索所有 \[AZ\]\\d\\d\:\[AZ\]\\d\\d 格式的文本（区域是用起始座标表示的，前述模式的文本一般表示区域），再进一步检查。本文例子没有那么复杂，姑且不议。

顺带一提，据我所知，Mac TableEdit 可以导出带公式

---

[前往标准阅读页](https://utgd.net/article/21173?audience=web)
