【问题标题】:Find data in two lists and compare with each other在两个列表中查找数据并相互比较
【发布时间】:2012-03-16 01:30:58
【问题描述】:

这是我第一次在这里发帖,但我不知道还能去哪里。

我在excel中有两个列表,它们的数据相似但顺序不同,每个都有3列(前缀(A,D),后缀(B,E)和数据(C,F))。

假设列表 1 在 A、B 和 C 列中;并在 D、E、F 中列出 2。

C 列中的每个元素在 F 列中都有一个相同的元素,但顺序不同,而且前两列(前缀和后缀)的值可能与对应的值不同,也可能不同。

我想这样做(我想它必须用宏来完成,但我真的不知道,我不是 excel 专家),我想从 C 列中获取每个元素(数据) 并在 F 列中找到它的等价物,然后,我想比较它们的前缀和后缀,并且可能在它们不同时将其涂成红色,当它们相同时将其涂成绿色。

这可能吗? (并没有太多的麻烦?)

如果您有不明白的地方,请回复,我很乐意尝试更好地解释。

【问题讨论】:

    标签: excel excel-formula conditional-formatting


    【解决方案1】:

    你可以通过使用条件格式在没有宏的情况下做到这一点

    (在 Debra Dalgleish 的网站 here 上有一篇关于条件格式的出色文章。在 xl2003 中,通过 Format .. Conditional Formatting 菜单访问条件格式。)

    如果你要匹配的数据在 A1:F10 中,那么这两个公式可以用来

    • 将 C 列与 F 匹配并返回 F 中 C 列匹配的位置
    • 将此位置的 D 列和 E 列中的值与 A 列和 B 列中的相应值进行比较
    • 使用=A1=INDEX(D$1:D$10,MATCH($C1,$F$1:$F$10,0))有效匹配的格式列A和B
    • 使用=A1<>INDEX(D$1:D$10,MATCH($C1,$F$1:$F$10,0)) 格式化列 A 和 B 以获取 无效 匹配项

    在下面的示例中,我已将这两种条件格式添加到 xl2010 中的单元格 A1:B10

    有效的匹配是绿色的 无效匹配为红色 不匹配不格式化

    所以 A1 和 B1 是绿色的,因为它们匹配 D2(先生)和 E2(琼斯)在 C1 和 F2 中的共同值 1
    所以 A3 是绿色的,因为它与 C3 和 F1 中的 10 匹配 D1(父亲),但 B3 是红色的,因为 E1 不包含“wang”

    【讨论】:

    • 这真的很棒,但我选择了另一个答案,因为它让我可以使用其他几个单元格从“外部”监视整个文件并显示一些结果。不过,非常感谢。
    【解决方案2】:

    我会做以下事情:

    1. 将 F 列移到 D 和 E 列之前(现在 D 是数据,E 是前缀,F 是后缀)

    2. 使用公式创建三个新列 G、H 和 I:

      =vlookup(C1, D:F, 2, 0)

      =vlookup(C1, D:F, 3, 0)

      =and(G1=A1,H1=B1)

    3. 在 I 列设置条件格式,红色表示 FALSE,绿色表示 TRUE。

    第一步是必要的,因为VLOOKUP 会在第一列数据中查找值。

    在第二步中,您将 C 列与 F 列(现在移至 D)进行匹配,并获得相应的前缀和后缀。下一个公式比较两者,如果它们都匹配,则返回 TRUE 或 FALSE。

    如果需要,您可以将所有三个公式合二为一。

    【讨论】:

    • 谢谢,我用过这个,效果很好。尽管重复“数据”单元格时,它总是只比较第一个结果,但我认为没有办法解决这个问题,对吧?因为整个文件的随机性?
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    相关资源
    最近更新 更多