首页 > 解决方案 > Excel在相邻单元格中填充单元格颜色

问题描述

我在excel中有一个网格,里面有数字。例如:

示例网格

网格比示例大得多,示例的数字是任意的。

我想比较奇数列中的数字,即 Col1 和 Col3,与它们相邻的列,即 Col2 和 Col4。我想看看 Col1 单元格中的值是否超过 Col2 中相邻单元格值的 2 倍,以及 Col2 值是否超过 Col1 中相邻单元格值的 2 倍。相同的标准适用于 Col3 和 Col4。如果值超出方差,我想将两个单元格的颜色更改为浅红色。

我想对网格中的所有单元格应用相同的算法,或者有两种算法,一种用于奇数列,另一种用于偶数列。

我尝试使用“条件格式”。使用 =((B6 * 2) <= C6) 比较 Col1 和 Col2 可以正常工作,但是使用 =((C6 * 2) <= B6) 比较 Col2 和 Col1 不会产生预期的结果。事实上,它看起来实际上是在将 Col2 与它的右手邻居 Col3 进行比较,这并不好。

问题:有没有办法使用“条件格式”来比较右手单元格与其左手邻居?

有没有更好的方法,也许使用 VBA 宏或类似的东西?

标签: excelvbaconditional-formatting

解决方案


可以通过条件格式来完成。

从上下文来看,您标记为“Col 1”的列是 B 列,而您的第一行数据是第 2 行

  1. 选择数据范围:示例中的 B2:E4
  2. 输入 CF 规则公式(这将为 Col 1、Col 3 等着色)
    =AND(ISEVEN(COLUMN()),OR(B2>C2*2,C2>B2*2))
  3. 输入另一条规则(这将为 Col 2、Col 4 等着色)
    =AND(ISODD(COLUMN()),OR(A2>B2*2,B2>A2*2))

在此处输入图像描述

笔记:

  1. 公式假定数据范围从 B2 开始。如果您从其他地方开始,请相应地调整参考。
  2. 公式假设您的数据从偶数列开始。如果它实际上是从奇数列开始,交换ISEVENISODD函数
  3. 我使用了两种不同的颜色来展示这两条规则的效果。您当然可以为两者使用相同的颜色
  4. 我使用了两条规则,因为我认为这更清楚。如果需要,您可以将它们组合成一个规则
    =OR(AND(ISEVEN(COLUMN()),OR(B2>C2*2,C2>B2*2)),AND(ISODD(COLUMN()),OR(A2>B2*2,B2>A2*2)))

推荐阅读