我有各种复杂的公式,从两页(用作数据输入页)提取数据,以特定方式格式化它,并将其显示在另一个第三页上(都在同一工作簿中)。
如果您在数据输入页面中一次在一个单元格中输入数据,这一切都可以正常工作,但如果您从另一个电子表格中“剪切和粘贴”,或者说“抓住一个单元格”并将其向上拖动几行以替换目标单元格的内容,或者如果您删除一行,公式就会出错并显示#REF ???
我不理解这种行为,有什么办法可以阻止它发生吗?
谢谢
答案1
例如:在单元 格
A1 中输入数字 1,在 A2 中输入,然后将其复制到 A2 下方的十个单元格中。 在 B2 及以下单元格中输入 a、b、c、d、ef=IF(B2<>"";A1+1;"")
现在检查 A 列中的公式如何引用单元格。(选择一个单元格,按 F2)
抓住 B 列中的一个单元格并将其向上移动,一步就足够了。
对于 LibreOffice 4.2.7.2,公式中的引用(在 A 列中)会跟随移动。
对于 Excel,我相信引用会被替换为#REF
-,因为 Excel 检测到这会“重叠”上面单元格中的公式。
无法检查 – 无法访问 Excel。
哪一个更正确?这可能是一个讨论的主题,这里不涉及。
将 A2 中的公式替换为=IF(OFFSET(A2;0;1)<>"";A1+1;"")
(并向下复制)
,您将能够移动 B 列中的内容而不会产生不良影响。
这是因为 B 列中的单元格不是直接引用的,而是通过与 A 列的偏移引用的。
-- 要移动引用的数据,您可以按照以下步骤进行:
- 剪切数据
- 使用“选择性粘贴 > 值”将其粘贴到未使用的位置(未被任何公式引用)
- 如果需要,为数据留出空间(选择并Delete赋值)
- 重复步骤 1 和 2,以确保数据正确放置