如何将行列表与Excel中另一行的列表进行比较?

我正试图弄清楚数据列表与另一个数据列表之间是否有任何区别。 为了使一行数据与另一行“匹配”,该行在其对应的列中必须具有相同的值。 行本身不必按照任何特定的顺序。 特别是,我正在处理零件清单,其中有部件号,说明等。我试图弄清楚是否有任何数据行与另一个清单中的数据行不同。

我发现使用数组比较两个表 ,这可能有我的问题的答案,但由于在Visual Basic中经验不足,我无法找出如何适应我的代码。

我能够得到它为一个单一的数据列工作,比较从一个表到另一个数据的一列,但不能得到它比较整行数据。

这是我想要这个工作的一个例子:

Sheet 1 Sheet 2 Column 1 Column 2 Column 1 Column 2 Row 1 22a 33 11 11 Row 2 22a 33a 22a 33 Row 3 55 22b 55 23b 

链接中的代码将告诉你什么不在表1中,但是在表2中,反之亦然。 在这个例子中,我希望代码告诉我工作表1行2和工作表1行3不在工作表2中,工作表2行1和工作表2行3不在工作表1中(工作表1行1和工作表2第2排比赛)。

如果你可以这样做,你可以使用下面的公式来做到这一点:

 ={IF(IFERROR(MATCH(A1&"|"&B1;Sheet7!$A$1:$A$3&"|"&Sheet7!$B$1:$B$3;0);-1)=-1;"Unique";"")} 

假设您的每个表格都以A1开始(以便具有三个条目的表跨度为A1:B3),并将该公式input到C1(并将其复制到下一个),则在input公式时按Ctrl + Shift + Enter,创build一个数组公式,这将显示C列中的单词“唯一”,如果该表中该行的对不在表2中的任何行对中。

然后,您可以使用条件格式来突出显示唯一行,对表进行过滤以仅包含唯一行,或以其他方式执行所需操作。

注1:我在Sheet6和Sheet7中input了我的数字,而不是1和2.上面写的公式写入Sheet6。

注2:我的语言使用; 而不是作为function分隔符,所以如果你的使用,你需要改变它。

注意3:如果你的设置增加,你将需要扩大Sheet7!$ A $ 1:$ A $ 3和Sheet7!$ B $ 1:$ B $ 3的范围(如果在新的行之间插入新行,这将自动发生)。 最好的办法可能是为4列中的每一列创build命名范围,与那些列交换引用,并pipe理命名范围而不是公式。

注意4:如果你的数据集包含字符“|”,你也需要改变它,以匹配你确实没有的字符。


或者你可以在每一个cheet进入C栏(假设C1的第一个入口)

 =A1&"|"&B1" 

并将其复制下来,然后使用该C列而不是A1和B1来运行复制示例中的解决scheme。