【问题标题】:Excel Conditional Formatting ProbsssExcel条件格式问题
【发布时间】:2015-11-05 12:52:58
【问题描述】:

我在 Excel 中使用条件格式来比较两组数据(在 A 列中设置 1,在 D 列中设置 2)。条件格式在 F 列中,因此如果 A=D 列 F 将变为绿色,如果 A /= D 则 F 列将变为红色。 问题是当我删除 A 和 D 中的第一个单元格并将下面的所有单元格向上移动时,整个条件格式都会被删除。有没有办法保持这种条件格式永久化?

[由于某种原因,我无法上传图片...如果可以的话,我会附上一张图片,以便更容易理解发生了什么]

【问题讨论】:

  • 这听起来像是您在 Excel 中的格式设置有问题,这不是与编程相关的问题,因此与本网站无关。你可能想试试SuperUser
  • @leigero 相反,条件格式是另一种将公式应用于单元格的方法;虽然不像其他编程示例那样健壮,但它被普遍接受为适用于本网站(尽管它也可能适用于 superuser.com)。
  • @Grade'Eh'Bacon 是的,但除非我遗漏了什么,否则他的问题与条件格式无关。他的问题是在 Excel 中删除和移动单元格时会丢失格式,这是一个软件问题,而不是代码问题。
  • 谢谢@Grade'Eh'Bacon。是的,这种类型的条件格式也有朝一日可能对您有用……这很常见。
  • @leigero 请注意下面我的解决方案 - 正确的结果是通过更改条件格式规则的公式来实现的 - 即:通过更改编码。

标签: excel formatting


【解决方案1】:

这是 Excel 的一般功能,而不仅仅是条件格式。简而言之,Excel 将每个单元格作为一个唯一的对象进行跟踪,如果它被移动(就像一行被删除),它会自动移动对该对象的引用以引用其新位置。

假设示例

考虑单元格 F5 中的公式,即“=A5+D5”。如果您右键单击 A3,删除该单元格并向上移动单元格,F5 中的公式现在将显示为“=A4+D5”,因为对 A5 的旧引用现在向上移动了 1。

理论上,您可以使用 INDIRECT 函数解决此问题。在上面的示例中,假设您想删除 A3,然后您希望 F5 中的单元格仍然读取 '=A5+D5',即使旧 A5 已向上移动。您可以使用以下公式执行此操作:

=INDIRECT("A5")+D5

因为您是间接通过将 A5 显式写为文本字符串来引用它,所以当行和列发生变化时它不会移动。请注意,这通常是违反直觉的。例如,如果您在第 2 行上方插入新行,您的公式现在将显示为:

=INDIRECT("A5")+D6

请注意,D6 自动移位,但 INDIRECT("A5") 没有。这可能不是预期的结果。但是,如果我们假设您经常删除(并向上移动)A 列中的单元格,但您希望合并所有其他工作表更改,我们可以做您想做的事情。现在再次忽略您的具体问题,请考虑上面的示例。我们如何改变它,以便当添加一个全新的行时,公式最终变为 A6+D6?但同时,当A3被删除时,公式现在变成A5+D5了吗?简而言之,我们通过引用 D5 所在的行来做到这一点,如下所示:

=INDIRECT("A"&ROW(D5))+D5

现在,如果添加一整行,则上述公式中 D5 的两个实例都变为 D6。但是如果 A3 被删除,“A”仍然是“A”,而 D5 实例仍然是 D5。

实际解决方案

因此,在您的条件格式中,公式如下 [适用于所有 F 列,或您想要的 F 列的大部分,从 F1 开始] [两个规则,一个是 AD,一个是 A= D;或者,默认情况下将格式设置为绿色,红色仅适用于 AD]:

=INDIRECT("A"&ROW(D1))<>D1

【讨论】:

  • 我会试试这个。谢谢!
  • @Fen 如果这解决了您的问题,请选择此回复作为“已回答”。
【解决方案2】:

此问题的原因可能是条件格式语法中引用了您删除的单元格。例如,如果您有条件格式,使用公式=$A1=$D1 应用于单元格F1:F5,然后删除单元格A1:A3D1:D3(向上移动单元格),您会注意到条件语句现在只有应用于单元格F3:F5。 Excel 会尝试为您更新这些引用,但有时这不是您想要的。

使用不直接引用单元格的公式可以解决此问题。例如:

=OFFSET($F1,0,-5)=OFFSET($F1,0,-2)

=OFFSET($F1,0,-5)<>OFFSET($F1,0,-2)

现在,当您删除 A 或 D 列中的任何单元格时,条件格式仍将应用于所有行。

【讨论】:

    猜你喜欢
    • 2015-04-20
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    相关资源
    最近更新 更多