Excel:比较两列的匹配和差异

  • Share This
Michael Brown

在Excel中比较列是我们每个人偶尔都会做的事情。 Microsoft Excel提供了许多选项来比较和匹配数据,但大多数都集中在一列中搜索。 在本教程中,我们将探索几种技术来 比较两列 在Excel中,找到它们之间的匹配和差异。

    如何在Excel中逐行比较2个列

    当你在Excel中做数据分析时,最频繁的任务之一是比较每一行的数据。 这项任务可以通过使用IF函数来完成,如下面的例子所示。

    例1.比较同一行中两列的匹配或差异

    要在Excel中逐行比较两列,写一个通常的IF公式,比较 前两个细胞。 在同一行的其他列中输入公式,然后通过拖动填充柄(选定单元格右下角的一个小方块)将其向下复制到其他单元格。 当你这样做时,光标会变成加号。

    匹配的公式

    要找到同一行中具有相同内容的单元格,即本例中的A2和B2,其公式如下。

    =IF(A2=B2,"Match","")

    差异的公式

    要找到同一行中数值不同的单元格,只需将等号替换为非等号()。

    =IF(A2B2, "不匹配",")

    匹配和差异

    当然,也没有什么能阻止你用一个公式同时找到匹配和差异。

    =IF(A2=B2, "匹配", "不匹配")

    =IF(A2B2, "不匹配", "匹配")

    其结果可能与此类似。

    正如你所看到的,该公式处理 数字 , 枣庄 , 文本字符串 同样好。

    提示:你也可以使用Excel高级过滤器逐行比较两列。 下面是一个例子,显示如何过滤两列之间的匹配和差异。

    例2.比较同一行中两个列表的大小写匹配情况

    你可能已经注意到,前面的例子中的公式在比较文本值时忽略了大小写,如上面截图中的第10行。 如果你想找到 大小写匹配 在每行的2列之间,然后使用EXACT函数。

    =IF(EXACT(A2, B2), "匹配", "" )

    要找到 区分大小写的差异 在同一行中,在IF函数的第3个参数中输入相应的文本(本例中为 "Unique"),例如:。

    =IF(EXACT(A2, B2), "匹配", "独特")

    比较同一行中多列的匹配情况

    在你的Excel工作表中,可以根据以下标准对多列进行比较。

    • 找到在以下数据中具有相同值的行 所有栏目 (例1)
    • 找到在以下数据中具有相同值的行 任何2列 (例2)

    例1.在同一行的所有单元格中查找匹配的内容

    如果你的表格有三列或更多列,而且你想找到所有单元格中都有相同值的行,那么带有AND语句的IF公式就会很有效。

    =IF(AND(A2=B2, A2=C2), "完全匹配", "" )

    如果你的表有很多列,一个更优雅的解决方案是使用COUNTIF函数。

    =IF(COUNTIF($A2:$E2, $A2)=5, "完全匹配", "")

    其中5是你要比较的列的数量。

    例2.在同一行的任何两个单元格中寻找匹配的内容

    如果你正在寻找一种方法来比较列的 任何两个或更多的细胞 如果在同一行内有相同的值,请使用带有OR语句的IF公式。

    =IF(OR(A2=B2, B2=C2, A2=C2), "匹配", "" )

    如果有很多列需要比较,你的OR语句可能会变得太大。 在这种情况下,一个更好的解决方案是增加几个COUNTIF函数。 第一个COUNTIF计算有多少列与第一列的值相同,第二个COUNTIF计算有多少其余的列与第二列相等,以此类推。 如果计数为0,公式返回 "Unique"。否则为 "匹配",例如:

    =IF(COUNTIF(B2:D2,A2)+COUNTIF(C2:D2,B2)+(C2=D2)=0, "独特", "匹配")

    如何在Excel中比较两列的匹配和差异

    假设你在Excel中有两个数据列表,你想找到所有在A列但不在B列的值(数字、日期或文本字符串)。

    为此,你可以在IF的逻辑测试中嵌入COUNTIF($B:$B, $A2)=0函数,并检查它是否返回0(没有找到匹配)或任何其他数字(至少找到1个匹配)。

    例如,下面的IF/COUNTIF公式在整个B列中搜索A2单元格中的值,如果没有找到匹配,该公式返回 "B中没有匹配",否则为空字符串。

    =IF(COUNTIF($B:$B, $A2)=0, "B中无匹配项", "")

    提示:如果你的表有固定的行数,你可以指定一个特定的范围(如$B2:$B10)而不是整个列($B:$B),以便公式在大数据集上运行得更快。

    通过使用内嵌ISERROR和MATCH函数的IF公式,可以达到同样的效果。

    =IF(ISERROR(MATCH($A2,$B$2:$B$10,0)), "B中无匹配项",")

    或者,通过使用下面的数组公式(记得按Ctrl + Shift + Enter来正确输入)。

    =IF(SUM(--($B$2:$B$10=$A2))=0, " B中没有匹配项", " ")

    如果你想用一个公式来识别匹配(重复)和差异(唯一值),在上述任何一个公式中的空双引号("")中放入一些匹配的文字。 例如:。

    =IF(COUNTIF($B:$B, $A2)=0, "B中没有匹配", "B中匹配")

    如何在Excel中比较两个列表并提取匹配的内容

    有时你可能不仅需要匹配两个不同表中的两列,还需要从查找表中拉出匹配的条目。 Microsoft Excel为此提供了一个特殊的函数--VLOOKUP函数。 作为替代方案,你可以使用更强大和通用的INDEX MATCH公式。 Excel 2021和Excel 365的用户,可以通过XLOOKUP函数完成这一任务。

    例如,以下公式将D列中的产品名称与A列中的名称进行比较,如果发现匹配,则从B列中提取相应的销售数字,否则返回#N/A错误。

    =vlookup(d2, $a$2:$b$6, 2, false)

    =index($b$2:$b$6, match($d2, $a$2:$a$6, 0))

    =xlookup(d2, $a$2:$a$6, $b$2:$b$6)

    更多信息,请参见如何使用VLOOKUP比较两列。

    如果你对公式感觉不是很舒服,你可以用一个快速和直观的解决方案来完成工作--合并表向导。

    比较两份名单,并突出显示匹配和差异

    当你在Excel中比较列时,你可能想 "可视化 "那些在一列中存在但在另一列中缺失的项目。 你可以通过使用Excel条件格式化功能,用你选择的任何颜色给这类单元格着色,下面的例子演示了详细步骤。

    例1.在每一行中突出显示匹配和差异

    要比较两列和Excel,并突出显示A列中具有以下特征的单元格 相同的条目 在同一行的B列中,做以下工作。

    • 选择你想突出显示的单元格(你可以选择一列内的单元格,如果你想给整个行着色,也可以选择几列内的单元格)。
    • 点击 条件格式化> 新规则.> 使用一个公式来决定哪些单元格需要格式化 .
    • 用一个简单的公式创建一个规则,如 =$B2=$A2 (假设第2行是有数据的第一行,不包括列头)。 请仔细检查你是否像上面的公式一样使用了相对行参考(没有$符号)。

    为了强调 差异 列A和B之间,用这个公式创建一个规则。

    =$B2$A2

    如果你是Excel条件格式化的新手,请看如何创建一个基于公式的条件格式化规则,以获得逐步的指导。

    例2.突出显示每个列表中的唯一条目

    每当你在Excel中对两个列表进行比较时,有3种项目类型可以突出显示。

    • 只在第1个列表中的项目(唯一)。
    • 只在第2个列表中的项目(唯一)。
    • 两个列表中都有的项目(重复的)--在下一个例子中演示。

    这个例子演示了如何给只在一个列表中的项目着色。

    假设你的列表1在A列(A2:A6),列表2在C列(C2:C5)。 你用以下公式创建条件格式化规则。

    突出显示列表1(A列)中的唯一值。

    =counttif($c$2:$c$5, $a2)=0

    突出显示列表2(C列)中的唯一值。

    =counttif($a$2:$a$6, $c2)=0

    并得到以下结果。

    例3.突出显示2列之间的匹配(重复)。

    如果你密切关注前面的例子,你不会有困难调整COUNTIF公式,使其找到匹配而不是差异。 你所要做的就是设置计数大于零。

    突出显示列表1(A栏)中的匹配信息。

    =COUNTIF($C$2:$C$5, $A2)>0

    突出显示列表2(C列)中的匹配信息。

    =COUNTIF($A$2:$A$6, $C2)>0

    突出显示多列中的行差和匹配

    当逐行比较几列中的数值时,突出显示匹配值的最快方法是创建一个条件格式化规则,而掩盖差异的最快方法是拥抱 转到专题 的功能,正如以下例子所展示的那样。

    例1.比较多列并突出显示行的匹配情况

    要突出显示有以下情况的行 所有列中的数值相同 ,根据以下公式之一创建一个条件格式化规则。

    =and($a2=$b2, $a2=$c2)

    =counttif($a2:$c2, $a2)=3

    其中A2、B2和C2是最上面的单元格,3是要比较的列数。

    当然,无论是AND还是COUNTIF公式都不限于只比较3列,你可以使用类似的公式来突出显示4、5、6或更多列中具有相同值的行。

    例2.比较多列并突出显示行的差异

    为了快速突出显示每一行中具有不同数值的单元格,你可以使用Excel的 转到专题 功能。

    1. 选择你要比较的单元格范围。 在这个例子中,我选择了A2到C8单元格。

      默认情况下,所选范围最上面的单元格是活动单元格,同一行中其他所选列的单元格将与该单元格进行比较。 正如你在上面的截图中所看到的,活动单元格是白色的,而所选范围的所有其他单元格都被突出显示。 在这个例子中,活动单元格是A2,所以 比较栏 是A列。

      更改对比栏 ,使用Tab键从左到右浏览所选单元格,或使用Enter键从上到下移动。

      提示:要选择 非相邻列 ,选择第一列,按住Ctrl键,然后选择其他列。 活动单元格将在最后一列(或相邻列的最后一块)。 要改变比较列,使用Tab或Enter键,如上所述。

    2. 关于 首页 选项卡,转到 编辑工作 组,并点击 查找& 选择 > 转到专题... 然后选择 行差 并点击 认可 按钮。
    3. 在每一行中,数值与对比单元格不同的单元格会被涂上颜色。 如果你想给突出显示的单元格涂上某种颜色,只需点击 填充颜色 色带上的图标,并选择你所选择的颜色。

    如何在Excel中比较两个单元格

    事实上,比较2个单元格是Excel中逐行比较两列的一个特殊情况,只不过你不必将公式复制到列中的其他单元格。

    例如,要比较A1和C1单元格,你可以使用以下公式。

    对于比赛。

    =IF(A1=C1, "匹配", "")

    对于差异。

    =IF(A1C1, "差异", "")

    要了解在Excel中比较单元格的其他一些方法,请看。

    • 如何在Excel中比较两个字符串
    • 检查两个单元格是否匹配或多个单元格是否相等

    在Excel中比较两列/列表的无公式方法

    现在你知道了Excel为比较和匹配列提供的服务,让我向你展示我们自己为这项任务提供的解决方案。 这个工具名为 "比较两个表",它包含在我们的终极套件中。

    该插件可以通过任何数量的列来比较两个表格或列表,并同时识别匹配/差异(就像我们用公式做的那样)和突出显示它们(就像我们用条件格式化做的那样)。

    为了本文的目的,我们将比较以下2个列表,以找到这两个列表中存在的共同值。

    要比较两份名单,以下是你需要遵循的步骤。

    1. 开始时,点击 比较表 上的按钮。 阿博比特数据 标签。
    2. 选择 第一栏/列表 并点击 下一页 就插件而言,这是你的表1。
    3. 选择第二个 栏目/列表 并点击 下一页 就插件而言,它是你的表2,它可以驻留在同一或不同的工作表中,甚至是另一个工作簿中。
    4. 选择要寻找的数据种类。
      • 重复的 价值 (匹配)--存在于两个列表中的项目。
      • 独特的 价值 (差异)--列表1中存在的项目,但在列表2中没有。

      由于我们的目的是寻找匹配,我们选择第一个选项并点击 下一页 .

    5. 这是关键的一步,你选择 用于比较的栏目 在我们的案例中,选择是显而易见的,因为我们只比较两列。 2000年获奖者 反对 2021年获奖者 在较大的表格中,你可以选择几个列对来进行比较。
    6. 在最后一步,你选择如何处理找到的项目,并点击 完成 .

      这里有几个不同的选项。 对于我们的目的,这两个是最有用的。

      • 用颜色突出显示 - 在选定的颜色中,阴影匹配或差异(像Excel条件格式化那样)。
      • 在状态栏中确定 - 插入了 状况 列的 "重复 "或 "唯一 "标签(像IF公式那样)。

    在这个例子中,我决定用以下颜色突出显示重复的部分。

    过了一会儿,得到了以下结果。

    随着 状况 列,结果将如下。

    提示:如果你要比较的列表在不同的工作表或工作簿中,并排查看Excel表可能会有帮助。

    这就是你在Excel中比较列的匹配(重复)和差异(唯一值)的方法。 如果你有兴趣尝试这个工具,欢迎你使用下面的链接下载评估版。

    我感谢您的阅读,并鼓励您查看我们的其他有用教程 :)

    可用的下载

    比较Excel列表 - 例子 (.xlsx文件)

    终极套房 - 试用版 (.exe文件)

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.