【问题标题】:Find matching rows in 2 excel lists based on 2 matching columns根据 2 个匹配列在 2 个 excel 列表中查找匹配行
【发布时间】:2015-06-13 07:54:08
【问题描述】:

我知道有人问过类似的问题,但 我还没有找到我正在寻找的场景。 我想突出显示,使用条件格式,根据 匹配一个列表中的行2 个匹配列在另一个列表中。

在提供的图片上,第二个列表中的第五行被突出显示,因为 ID 和日期都与第一个列表中的记录匹配。

这意味着我不关心 client 和 provider 列,但也意味着第三行不会突出显示,例如,因为它匹配 id 列但不匹配 days。

我找到了带有条件格式但只匹配一列的示例。

【问题讨论】:

    标签: excel


    【解决方案1】:

    连接然后匹配。

    也就是说,使用公式在您的第一个表中创建一个隐藏列(例如 D 列)

    =A2 & "##" & C2
    

    然后,要查找,使用连接字符串作为查找参数并查看连接列。比如:

    =IF(ISNA(MATCH(E2&"##"&G2, $D$2:$D$4, 0)), FALSE, TRUE)
    

    如果您不想为此中间计算使用额外的列,请考虑使用数组公式。

    【讨论】:

    • 谢谢,我会尝试并回帖!
    【解决方案2】:

    使用您提供的示例,创建适用于 $E$2:$G$7 的新条件格式规则并使用以下公式:

    =SUMPRODUCT(--($A$2:$A$4=$E2),--($C$2:$C$4=$G2))>0
    

    如果您使用的是 Excel 2007 或更高版本,则可以使用 COUNTIFS 公式而不是 SUMPRODUCT:

    =COUNTIFS($A$2:$A$4,$E2,$C$2:$C$4,$G2)>0
    

    【讨论】:

      【解决方案3】:

      非常感谢乔希!我尝试了您的解决方案,部分成功。首先,我对“E”列中的行进行了连接,并在条件格式表达式上使用了以下公式。

      =IF(ISNA(MATCH(G2&I2, $E$2:$E$4, 0)), FALSE, TRUE)
      

      但是,如图所示,我只突出显示第一列,我需要整行。我在应用条件格式时选择了整个范围。

      编辑

      我发现了错误!该公式需要一些额外的列来修复。这是正确的公式:

      =IF(ISNA(MATCH($G2&$I2, $E$2:$E$4, 0)), FALSE, TRUE)
      

      【讨论】:

      • 我在公式中发现了错误并更正了答案以包含它。再次感谢乔希的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多