在两个列表中查找数据并相互比较

这是我第一次在这里发帖,但是我不知道还有什么地方可以去。

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

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

列C中的每个元素在列F中具有相同的一个,但是以不同的顺序,并且前两列(前缀和后缀)可以具有也可以不具有与其对应物不同的值。

我想这样做(我想它必须用macros来完成,但我真的不知道,我不是一个excel的专家太多),我想从列C(数据)中的每个元素,并find在F列中是相同的,之后我想比较它们的前缀和后缀,也许在不同的时候将它们涂成红色,当它们相同时涂成绿色。

这可能吗? (而不是太麻烦?)

如果你不明白,请回复,我会很乐意尝试和解释更好。

我会做以下几点:

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

  2. 用公式创build三个新的列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。

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

您可以通过使用条件格式化而不使用macros来执行此操作

(在Debra Dalgleish的站点里有一个很好的条件格式的写法,在xl2003条件格式可以通过Format .. Conditional Formatting菜单访问。

如果要匹配的数据在A1:F10中,则可以使用这两个公式

  • 将列C与F匹配并返回C列中匹配的F中的位置
  • 比较在这个位置的列D和E中的值与列A和B中的相应值
  • 格式列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))

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

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

所以A1和B1是绿色的,因为他们匹配D2(Mr)和E2(Jones),C1和F2的公共值为1
所以A3是绿色的,因为它与C3和F1中的D1(父亲)匹配为10,但是B3是红色的,因为E1不包含“王”

在这里输入图像说明