在Excel中插入单元格而不更新相邻的公式


3

有时我通过在Excel中将它们并排粘贴在中间的公式来直观地比较两个数据集=A1=C1。这将根据单元格是否完全匹配返回true或false。当数据集缺少记录时,我可以通过简单地插入新单元格并将现有单元格向下移动来使它们再次对齐。但是,当我这样做时,它更新公式以将引用单元格向下移动我插入的单元格数量,如下所示:

Excel问题

这会导致问题,因为每次发生这种情况时我都必须重做所有公式。在长数据集上,这非常繁琐。有没有办法在比较列中“锁定”公式,所以它不关心我插入或删除单元格,它们将始终指向我设置的原始单元格?

顺便说一句,我知道$ 1美元将锁定一个引用,但这只有在你移动那个单元而不是移动引用的单元时才有效。如果你把它放在顶部然后向下拖动它们,无论你拖动什么行,它们都将保持$ 1美元(另外,在参考列中插入一个单元格后它仍会进行更新)。


我现在没有时间尝试,但是你可以使用OFFSET和ROW的组合来匹配公式行中的值,无论在哪里添加单元格?
dav

Answers:


2

如果我理解你的问题,我认为这可行:

=OFFSET($B$1,ROW()-1,-1)=OFFSET($B$1,ROW()-1,1)

其中B1是公式的任意锚点,并且您总是计算比较任一侧的单元格的偏移量。


1
从你原来的评论我不知道如何处理ROW,但实际上我只能使用OFFSET,就像这样:=OFFSET(B1,0,-1)=OFFSET(B1,0,1)。如果有办法锁定公式,我仍然很好奇,但是如果没有人在几天内发布任何相关信息,我会接受这个答案。谢谢!
techturtle

谢谢,你的配方实际上比我的优雅一点。ROW()应该将公式“锁定”到当前行,但是在修改显示时它实际上是不必要的。至于“锁定”公式,你想要完成什么 - 我不确定我完全理解。
dav

基本上我希望能够继续使用=A1=C1(更容易设置和读取)并向下拖动,然后选择列并说“锁定”,这样它就不会再更新公式/单元格了。我以为可能有一个我可以暂时打开的选项设置,比如“不要在移动时更新公式”,但我没有找到任何有效的方法。
techturtle

好的,我想我明白了。我从来没有听说过类似的东西,虽然看起来VBA应该能够胜任(但我对VBA并不是很好)。为了提高可读性(但是没有像你提到的那样锁定),你可能会使用命名范围。我会看看我是否可以得到一些工作......
dav

2

您可以复制要向下移动的单元格,而不是插入单元格,并使用paste-special-values将它们放在您想要的位置。换句话说,移动值而不是单元格将阻止公式进行调整。


这应该工作正常。您只需在粘贴并删除上面的单元格后返回到范围的顶部,然后就可以获得所需的空白区域。我也是通过将值放在不同的工作表中,使用Ctrl + Shift + Plus插入行,然后粘贴所有这些来完成的。
Noumenon

1

我将一组数据放在A列中,另一组放在B列中。然后我将下面的公式粘贴在C列的每个单元格中。该ROW()函数返回当前行号,因此您可以在A或B列中插入/删除数据而不用必须粘贴并重新调整您的公式。您可以将公式粘贴到任何列中,它仍然有效 - 比较它所在行中的A列和B列。

=IF(INDIRECT(ADDRESS(ROW(),1)) = INDIRECT(ADDRESS(ROW(),2)), "ok", "***diff***")

我同意 - 我希望有一些方法告诉Excel在列中插入和删除数据时不要更改公式。


欢迎来到超级用户。你的答案没有多大意义,所以我“修理”了它。如果您不同意我的更改,请将其编辑回来。祝好运!
G-Man
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.