检查一个数据集中的特定范围的值是否存在于另一个数据集中

检查一个数据集中的特定范围的值是否存在于另一个数据集中

我有两个数据集,数据集 1 和数据集 2,每个数据集包含多个带值的列。我的最终目标是找出数据集 1 中所有与数据集 2 不同且在数据集 2 中找不到的行。

数据集 1(示例):

Name        Species Age
Donald       Dog    3
Petronella   Dog    5

数据集 2(示例):

Name        Species Age
Donald       Dog    3
Anna         Dog    5

在上面的例子中,我想找出关于 Petronella 的单元格值组合对于第一个数据集是唯一的,并且在第二个数据集中找不到。Donald 和 Anna 在本例中不太受关注。

一个简单的选择可能是添加第四列,其值为 1 或 0,具体取决于数据范围是否存在于第二个数据集中。

我知道如何将一个范围直接与另一个范围进行比较,但如何扩展此比较以包含数据集 1 中的所有行?在确定数据集 1 中的一系列值是否可以在数据集 2 中找到时,行的顺序不应成为考虑因素。

答案1

您可以在数组公式中使用 MATCH 和 CONCATENATE 来了解 Dataset1 中的唯一值列表。由于使用了 MATCH,因此比较不区分大小写。

示例数据集 1 位于单元格 B4:D7 中,数据集 2 位于单元格 G4:I7 中。现在在 E4 中输入以下公式,然后在公式栏中按 CTRL+SHIFT+ENTER 创建一个数组公式。公式应括在花括号中,以表明它是任意数组公式。

=IF(ISERROR(MATCH((B4&C4&D4),CONCATENATE($G$4:$G$7,$H$4:$H$7,$I$4:$I$7),0)),"Unique","Duplicate")

参见下面的截图。这是 MATCH 的基本用法,但参数是数组中的行连接列表。

在此处输入图片描述

答案2

只需添加功能

=COUNTIF(range,criteria)

在第四列。


在你的情况下,范围将是包含

Donald
Anna

标准就是要评估的单元格。

如果匹配则输出为 1,否则输出为 0。

相关内容