6 个无声的 Excel 表格杀手(以及你如何防范它们)
你的 Excel 电子表格可能在欺骗你。不,这不是阴谋——它只是一些常见的、隐形的错误杀手,它们能绕过错误检查并破坏你的报告。那么,让我们找出这些悄无声息的陷阱,并彻底修复它们。
隐形计算:隐藏和筛选的行
你已经检查了三次数学计算,但总数仍然感觉不对。这种情况通常发生是因为 Excel 的 SUM 函数会将某个范围内的每个单元格的值相加,即使你手动隐藏了行或进行了筛选。
在此示例中,如果在隐藏第5到第10行后,您输入:
=SUM(A1:A15)这个公式仍然返回 120,即使可见单元格的总和是 75。
这些虚假数据是一个常见的元凶,几乎不可能一眼就发现。相反,可以使用 SUBTOTAL 函数:
=SUBTOTAL(109,A1:A15)第一个参数告诉 Excel 要执行哪种计算以及是否包括隐藏行。对于加法,请使用代码 109,以确保任何被隐藏的行——无论是通过筛选还是手动隐藏——都不会被计算在内。
函数 | 包含手动隐藏行的代码 | 忽略手动隐藏行的代码 |
|---|---|---|
平均 | 1 | 101 |
|
计算 | 2 | 102 |
计数 | 3 | 103 |
最大 | 4 | 104 |
分钟 |
5 | 105 |
产品 | 6 | 106 |
标准差 | 7 | 107 |
STDEVP | 8 | 108 |
总和 | 9 | 109 |
视频助理裁判 | 10 | 110 |
VARP | 11 | 111 |
这两组代码总是会忽略被筛选隐藏的行。
隐形过滤器:当漏斗图标失效时
默认情况下,当你在 Excel 表格中筛选数据时,会在相关列标题中看到一个有用的漏斗图标。
然而,这个图标有时会消失——通常是在你使用高级筛选工具时。Excel 认为它是在帮你保持标题整洁,但实际上它让你误以为数据丢失了。
在这种情况下,看看最左边的行号。如果序列断开且数字是蓝色的,则表示存在激活的筛选器。
要解决此问题,在“数据”选项卡中,点击“清除”。这会删除工作表中的所有筛选条件,无论是否可见,让你丢失的数据从空白中恢复回来。
混合数据类型:以文本形式存储的数字
看起来像数字但实际上表现为文本的单元格是 Excel 中的终极隐形杀手。如果你尝试对以文本形式存储数字的列求和,Excel 会将它们简单地当作零来处理,从而导致总和不正确。
默认情况下,Excel 会将数字右对齐,文本左对齐。如果你的数值靠在单元格的左侧,Excel 就不会认为它们是数字。你可能会在单元格的角落看到一个微小的绿色错误三角,但如果已禁用该提示,你就无法看到这些错误。
另一种检查方法是选择可疑的单元格,然后查看状态栏。如果你看到“计数”但没有“求和”或“平均值”,说明这些是文本。
要解决此问题,在仍选中单元格的情况下,点击“开始”选项卡中“数字格式”下拉菜单中的“常规”。
如果它们保持左对齐,请在“数据”选项卡中点击“分列”,然后点击“完成”。
Excel 会重新计算单元格,将文本值转换为实际的数字,并完成计算。现在,状态栏也会显示平均值和总和,因为它处理的是数字,而不是文本。
计数和查找中的虚拟空间
在 Excel 中,最令人沮丧的情况之一是计数或查找返回错误结果,而你却不知道。
假设你想统计 T_Sales 表中 Product 列出现“Cap”的次数。为此,你可以使用以下 COUNTIF 公式:
=COUNTIF(T_Sales[Product],M1)
然而,尽管这一列中实际上有四个“Cap”,公式却返回了3。这很可能是因为其中某个单元格中的“Cap”之后有一个不可见的空格。事实上,包含“Cap ”(末尾有空格)的单元格在技术上与“Cap”(末尾没有空格)是不同的字符串。
为了在清理数据时不破坏其他项(例如“魔方”中的空格)之间的空格,请在辅助列中使用 TRIM 函数:
=TRIM([@Product])这会移除所有前导和尾随空格,但保留单词之间的单个空格。然后你可以选择这些新的、已修剪的文本字符串,将它们作为值(Ctrl+Shift+V)粘贴到原始列中,并删除辅助列。这样做时,公式会正确计算大写字母的数量。
如果你发现自己经常修剪相同的杂乱数据,可以使用 Power Query。将数据转换为表格后,点击“数据”选项卡中的“从表/范围”,在 Power Query 编辑器中,右键点击列标题,选择“转换”>“修剪”。每次点击“刷新”时,Excel 会自动去除那些隐藏的空格。
易变函数和手动计算
如果 Excel 被迫过于频繁地重新计算,它可能会变得非常缓慢。这通常是由于像 OFFSET、INDIRECT 和 TODAY 这样的易变函数引起的。与普通函数不同,这些函数每次你在工作簿中的任何位置进行更改时都会重新计算。
为了应对延迟,您可以在“公式”选项卡的“计算选项”下拉菜单中选择“手动”。
然而,虽然这能让程序运行更快速,你可能会忘记按 F9 来更新数据,这意味着你可能会根据过时的数字做出关键决策。
更好的解决方法是用稳定的函数替换易变函数,例如使用 INDEX 代替 OFFSET,或使用 XLOOKUP 代替 INDIRECT。即使是微软也建议减少使用易变函数的数量,以加快电子表格的速度。
硬编码数字:隐藏的雷区
Excel 公式本应是动态的,但我们都有过在匆忙时直接将税率写入单元格的冲动。这被称为硬编码,就像在自家后院埋地雷一样危险。
危险不在于数学本身——而在于可见性。六个月后,当汇率发生变化时,你将需要更新所有公式,一个不小心就可能遗漏。问题是,你不一定会意识到自己漏掉了某个公式,这样你可能最终会依赖不准确的数据。
每个变量都应该存放在自己标记的单元格中,公式应引用这些单元格。这样,如果需要更改变量,只需在一个地方修改即可。
更好的是,你可以为单元格命名,使公式更容易阅读——只需选中单元格,然后在左上角的名称框中输入一个有意义的名称来创建命名区域。然后,在公式中引用这个名称。
要审核你的公式,按 Ctrl+~。这会显示工作表中的所有公式,这样你就可以轻松看到它们是否使用了原始数字而不是单元格引用或命名单元格。
除了这些看不见的杀手之外,还有其他几种常见的 Excel 错误——比如合并单元格、不使用 Excel 表格以及使用错误的引用类型——这些都会损害你的数据完整性。现在修正这些错误,可以确保你的电子表格既可靠又实用。
















