根据另一个工作表中的匹配条件设置单元格格式

k3d*_*vis 5 worksheet-function microsoft-excel microsoft-excel-2010

我有一个包含 2 个工作表的 Excel 电子表格。第一个只是一个标题行和一列项目名称。第二个是项目组列表,在最左边的列中有一个标题行和一个标题,每个后续行是另一个工作表中的一个或另一个项目:

Sheet1:            Sheet2:
+-------+--+--+    +-------+-------+-------+-------+-------+
| Item  |  |  |    | Group | Item1 | Item2 | Item3 | ...
+-------+--+--+    +-------+-------+-------+-------+-------+
| Shirt |  |  |    | A     | Shirt | Hat   | Tie   |
+-------+--+--+    +-------+-------+-------+-------+-------+
| Hat   |  |  |    | B     | Socks | Shirt | SHOES |
+-------+--+--+    +-------+-------+-------+-------+-------+
| Socks |  |  |    | C     | Hat   | Socks |       |
+-------+--+--+    +-------+-------+-------+-------+-------+
| Tie   |  |  |    | D     | Tie   | Tie   | Socks |
+-------+--+--+    +-------+-------+-------+-------+-------+
| ...   |  |  |
+-------+--+--+
Run Code Online (Sandbox Code Playgroud)

我想有条件地格式化“Sheet2”中的所有单元格,以便任何与“Sheet1”第一列中的值不匹配的值都标有红色背景;那些做的标有绿色背景。因此,此示例中从 B2 开始的所有单元格都将是绿色的,但值“SHOES”除外。下面的值没有输入任何内容,因此根本不会被格式化。

我试过的绿色格式规则是:

=AND(NOT(ISBLANK(B2)), COUNTIF(Sheet1!$A2:$A1000,B2)>0)
Run Code Online (Sandbox Code Playgroud)

对于红色,大致相同:

=AND(NOT(ISBLANK(B2)), COUNTIF(Sheet1!$A2:$A1000,B2)<1)
Run Code Online (Sandbox Code Playgroud)

这两个规则都“适用于”有点任意范围(我希望它适用于整个工作表,而不是最顶部和最左侧的行/列):

=$C$3:$E$10,$C$36:$Q$50,$E$11,$C$11,$C$2,$E$2:$Q$2,$C$12:$E$35,$F$3:$Q$35
Run Code Online (Sandbox Code Playgroud)

这半有效,但结果是不可预测的。有些值按我的预期突出显示,但仅针对几行,而其他值则没有。可能我的范围以某种方式不正常,但我几乎不像以前那样使用 Excel。任何人都可以伸出援手吗?

谢谢!

jma*_*mac 3

正如 Doktoro Reichard 所说,您需要使用条件格式来执行此操作。在这种特定情况下,您需要三个规则:

  1. 如果单元格为空白,请勿更改背景
  2. 如果单元格有匹配项,则将背景设为绿色
  3. 如果单元格没有匹配项,则将背景设为红色

抱歉,我的 Excel 是日语的。今天是多语言日。

为此,我们需要 3 个公式,这些公式将为每个条件返回TRUEor 。FALSE我假设您的数据如下所示:

表1

在此输入图像描述

表2

在此输入图像描述

规则1

以下公式将返回单元格是否为空白。我已选择

在此输入图像描述

=ISBLANK(B2)
Run Code Online (Sandbox Code Playgroud)

请注意,我选择了B2:D5具有相对引用的单元格。这将应用相同的公式来更改所选范围中每个单元格的单元格引用。当此条件成立时,将背景颜色设置为白色(或任何您喜欢的颜色)。

规则#2

以下公式将返回工作表 1 的列表中是否存在完美匹配:

在此输入图像描述

=NOT(ISERROR(MATCH(B2,Sheet1!$A:$A,0)))
Run Code Online (Sandbox Code Playgroud)

规则#3

以下公式将返回工作表 1 的列表中是否存在完美匹配:

在此输入图像描述

=ISERROR(MATCH(B2,Sheet1!$A:$A,0))
Run Code Online (Sandbox Code Playgroud)

命令

最上面的规则将首先执行。因此,由于所有空白单元格都将不匹配,因此您需要首先放置空白规则。#2 和 #3 的顺序并不重要(它们永远不会重叠)。