此数据基本上可以识别正确的选择(A、B、C D)
我有两张表(Sheet1 和 Sheet2)中的数据如下。我需要比较或验证两个工作表中的单元格值,如果根据条件这些值相同,则为 Sheet1 中的单元格着色。条件是,在Sheet2中,获取A1(即1)的单元格值,然后获取单元格A1、B1(即A)旁边的相邻单元格值。现在,如果 1=A,则在 Sheet1 中,在 colA 中查找 1 和 A,然后为值为 A 的单元格着色。对sheet2 中的所有单元格值同样重复。
如下所示数据,基于Sheet2,1=B,2=D,3=C。然后在 Sheet1 的 ColC 中,对于 1,单元格值 B 必须用绿色着色,对于 2,单元格值 D 必须用绿色着色,对于 3,单元格值 C 必须用绿色着色,
数据如下图:
Sheet1 Sheet2
ColC ColA ColB
1 1 B
A 2 D
B 3 C
C
D
2
A
B
C
D
3
A
B
C
D
是否需要是VBA,还是条件格式就足够了?
基本上,您的问题有 2 个步骤:“获取此单元格上方的第一个数字”,然后……执行
VLOOKUP
。相反的顺序:
要检查值是否匹配,只需执行
=IFERROR(A1=VLOOKUP(some_value, Sheet2!$A:$B, 2, FALSE), FALSE)
现在您需要做的就是弄清楚
some_value
应该是什么。对于that,我建议查看上面的所有单元格(包括其本身),并取值为数字的最大行:
MAX(Row(A$1:A1)*--ISNUMBER(A$1:A1))
(请注意,非常重要的是,每个范围中的 second
A1
not 有 $
符号 - 这意味着“从当前列的顶部,向下到当前单元格)
然后,您想要获取值(而不是行),因此使用
INDEX
:
INDEX($A:$A, MAX(Row(A$1:A1)*--ISNUMBER(A$1:A1)))
并将其插入您的
VLOOKUP
:
=IFERROR(A1=VLOOKUP(Index(A:A, MAX(Row(A$1:A1)*--ISNUMBER(A$1:A1))), Sheet2!$A:$B, 2, FALSE), FALSE)
这将为您提供
TRUE
或 FALSE
结果,用作条件格式公式!