在两个列表中查找数据并相互比较
这是我第一次在这里发帖,但是我不知道还有什么地方可以去。
我在excel中有两个列表,他们两个都有相似的数据,但顺序不同,每个列都有3列(前缀(A,D),后缀(B,E)和数据(C,F))。
假设列表1在列A,B和C中; 在D,E,F列出2
列C中的每个元素在列F中具有相同的一个,但是以不同的顺序,并且前两列(前缀和后缀)可以具有也可以不具有与其对应物不同的值。
我想这样做(我想它必须用macros来完成,但我真的不知道,我不是一个excel的专家太多),我想从列C(数据)中的每个元素,并find在F列中是相同的,之后我想比较它们的前缀和后缀,也许在不同的时候将它们涂成红色,当它们相同时涂成绿色。
这可能吗? (而不是太麻烦?)
如果你不明白,请回复,我会很乐意尝试和解释更好。
我会做以下几点:
-
在列D和E之前移动列F(现在D是数据,E是前缀,F是后缀)
-
用公式创build三个新的列G,H和I:
=vlookup(C1, D:F, 2, 0)
=vlookup(C1, D:F, 3, 0)
=and(G1=A1,H1=B1)
-
在列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不包含“王”