让我们使用条件格式来解决。
您可能知道,条件格式通过设置一个规则来管理您应用它的单元格。如果该规则产生 TRUE,则应用该规则(差异颜色等)。因此,这里的目标是制定一个公式,当满足所有条件时结果为 TRUE。我们在这里关心两个条件。首先,sheet1的A列中的项目是否存在于sheet2的A列中?
=not(iserror(match($A1,sheet2!$A:$A,0)))
首先,它使用 MATCH 函数检查 A1(在列上具有绝对引用,因此当您将规则应用于列 A 和 B 时,它根本不会查看列 B)存在于 sheet2 列 A 上。如果它确实存在,它将吐出它出现的行号。如果不存在,则会产生错误。所以它被包裹在 ISERROR 中,上面写着“如果这个参数返回错误,则吐出 TRUE”。但是,我们希望它在出现 no 错误时返回 TRUE。因此,我们将其包装在 NOT 中,这会将 TRUE 反转为 FALSE,反之亦然。
现在您真正关心的是,如果 A1 存在于 sheet2 中,那么 sheet2 上 B 列中的那一行是否与 sheet1 上 B1 中的值匹配?
所以我们通过使用索引函数在 B 列中找到值,其中 A 列中有匹配项,如下所示:
=Index(sheet2!$B:$B,match($A1,sheet2!$A:$A,0))
这给出了工作表 2 中 B 列的值。因此,检查:该值是否等于工作表 B1 中的值? [我们实际上检查该值是否与 B1 不同,因此我们使用“”而不是“=”。
=Index(sheet2!$B:$B,match($A1,sheet2!$A:$A,0))<>$B1
现在我们只需要用“”替换错误(如果 Match 返回不匹配)。
=Iferror(Index(sheet2!$B:$B,match($A1,sheet2!$A:$A,0)),"")<>$B1
就是这样。如果 sheet2 columnA [使用 MATCH 函数] 中有匹配项,它会为您提供 B 列 [使用 INDEX] 函数的日期。如果没有匹配,则返回 "" [使用 IFERROR 函数]。然后,如果该值不等于 B1,则结果为 TRUE,这会触发您的条件格式。