1
失误 7:“易失函数惹的祸” (常见错误:文件卡顿 / 结果意外刷新)
现象:
打开文件、切换工作表或按 F9 时,整个表格疯狂重算,非常卡顿。
包含 RAND(), RANDBETWEEN(), NOW(), TODAY(), OFFSET(), INDIRECT() 的单元格结果不停变化。
原因:
易失函数 (Volatile Functions) 会在任何工作表发生计算时重新计算(即使它们的参数没变)。
大量使用或嵌套这些函数会严重拖慢性能。
RAND(), RANDBETWEEN(), NOW(), TODAY() 的值随时间或计算改变是预期行为,但有时不需要它变。
解决方案:
识别易失函数: 记住常见易失函数:RAND, RANDBETWEEN, NOW, TODAY, OFFSET, INDIRECT, CELL, INFO。
减少依赖: 思考是否必须用它们?是否有替代方案?
固定随机数:生成后 复制 -> 选择性粘贴 -> 值。
固定时间戳:输入 =NOW() 后回车得到时间,立刻 复制 -> 选择性粘贴 -> 值。
替代 OFFSET/INDIRECT:尽可能使用 INDEX, MATCH, 动态数组函数 (FILTER, SEQUENCE, XLOOKUP) 等非易失函数构建引用。
- 控制重算: 公式 选项卡 -> 计算选项 -> 手动。仅在需要时按 F9 重算。注意: 这会影响所有公式,需谨慎。
- 优化结构: 将易失函数计算结果放在单独区域或工作表,减少其影响范围。
预防笔记: > “易失函数性能耗,RAND NOW OFFSET 要记牢。能替则替少用好,固定数值是妙招。手动重算控全局,结构优化分离早。”
2
失误 8:“区域/名称引用失效” (常见错误:#REF! / #NAME?)
现象:
之前好好的公式突然报错 #REF!。
使用自定义名称的公式报错 #NAME?。
原因:
#REF!:公式引用的单元格、行、列或工作表被删除了。
#NAME?:
输入的函数名拼写错误 (如 VLOKUP)。
引用的自定义名称不存在或拼写错误。
加载项函数未启用。
解决方案:
检查 #REF!:
双击错误单元格,Excel 会用不同颜色标记公式中的引用。找到显示为 #REF! 的部分。
追溯被删除的内容,恢复数据或修改公式引用到正确位置。
避免直接删除整行/整列影响公式,删除前检查引用。
- 检查 #NAME?:
检查函数拼写: 对照帮助或提示确认。
检查自定义名称: 公式 选项卡 -> 名称管理器。确认名称存在、拼写正确、引用有效。
检查加载项: 如果是特定函数(如 ANALYSYS 库里的),确保加载项已启用。
预防笔记: > “#REF 根源在删改,删前检查引用链。#NAME 拼写名称查,管理器中寻根源。”