我在Excel中使用条件格式来比较两组数据(A列中设置1,D列中设置2)。条件格式在F列中,所以如果列A=D,则列F将变为绿色,如果A列为/= D,则列F将变为红色。问题是,当我删除A和D中的第一个单元格并将所有单元格向上移动时,整个条件格式就会被删除。有没有办法保持这种固定格式不变?
我很难上传照片给一些reason...if我可以,我会包括一张照片,这样就更容易理解发生了什么
发布于 2015-08-12 11:09:29
这是Excel的一个通用特性,而不仅仅是条件格式。简而言之,Excel将每个单元格作为唯一的对象进行跟踪,如果它被移动(比如删除一行),那么它会自动将对该对象的引用移到它的新位置。
假设示例
考虑一下单元格F5中的一个公式,它是'=A5+D5‘。如果您正确地单击A3,删除该单元格并向上移动单元格,则F5中的公式现在将为'=A4+D5',因为对A5的旧引用现在向上移动了1。
从理论上讲,你可以用间接函数来解决这个问题。在上面的示例中,假设您想删除A3,然后希望F5中的单元格仍然读'= A5 +D5',即使旧的A5已经向上移动。您可以使用以下公式进行此操作:
=INDIRECT("A5")+D5
因为您通过显式地将A5写成文本字符串来间接地引用它,所以当行和列发生变化时,它不会移动。请注意,这通常是违反直觉的。例如,如果在第2行的上方插入新行,则您的公式现在会读到:
=INDIRECT("A5")+D6
请注意,D6自动移动,但间接(“A5”)没有。这可能不是期望的结果。但是,如果我们假设您经常删除(并移动) A列中的单元格,但是您希望合并所有其他工作表更改,那么我们可以做您想做的事情。再一次忽略你的具体问题,考虑上面的例子。我们如何更改它,以便当一个全新的行被添加时,公式最终变成A6+D6?但与此同时,当A3被删除时,公式现在是否读到了A5+D5?简而言之,我们通过引用D5所在的行来做到这一点,如下所示:
=INDIRECT("A"&ROW(D5))+D5
现在,如果添加了整行,则上述公式中的两个D5实例都将成为D6。但是如果删除A3,则"A“仍然是"A",而D5实例仍然是D5。
实际解决方案,用于您的案例
因此,在条件格式中,该公式将适用于所有F列,或您想要的F列的多少,从F1开始
=INDIRECT("A"&ROW(D1))<>D1
发布于 2015-08-12 11:09:43
造成此问题的原因可能是您删除的单元格是在条件格式语法中引用的。例如,如果您有条件格式(用公式F1:F5
应用于单元格=$A1=$D1
),然后删除单元格A1:A3
和D1:D3
(移动单元格),您将注意到条件语句现在只应用于单元格F3:F5
。Excel试图为您更新这些引用,但偶尔这并不是我们所希望的。
使用一个不直接引用单元格的公式将修复这个问题。例如:
=OFFSET($F1,0,-5)=OFFSET($F1,0,-2)
和
=OFFSET($F1,0,-5)<>OFFSET($F1,0,-2)
现在,当您删除A或D列中的任何单元格时,条件格式仍将应用于所有行。
https://stackoverflow.com/questions/31973249
复制相似问题