gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:42:05 27 4
gpt4 key购买 nike

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

我找到了Compare two sheets using arrays ,这可能可以解决我的问题,但由于缺乏 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 行匹配)。

最佳答案

如果您同意,您可以使用以下公式在没有 VBA 的情况下执行此操作:

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

假设您的每个表都从 A1 开始(因此具有三个条目的表跨越 A1:B3),并将此公式输入到 C1 中(并将其复制下来),输入公式时按 CTRL+SHIFT+ENTER 创建数组公式,如果该工作表上该行中的对不在工作表 2 上的任何行对中,这将在 C 列中显示单词“唯一”。

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

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

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

注意 3:如果您的集合增长,您将需要扩展范围 Sheet7!$A$1:$A$3 和 Sheet7!$B$1:$B$3(如果在旧行之间插入新行,这将自动发生)。最好的方法可能仍然是为 4 列中的每一列创建命名范围,与这些列交换引用,并管理命名范围而不是公式。

注意 4:如果您的数据集包含字符“|”,您还需要更改它,以匹配您肯定没有的某些字符。

或者,您可以在每个 cheet 的 C 列中输入(假设 C1 中的第一个条目)
=A1&"|"&B1"

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

关于vba - 如何将行列表与 Excel 中的另一个行列表进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30924001/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com