Table of contents
在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的 转到专题 功能。
- 选择你要比较的单元格范围。 在这个例子中,我选择了A2到C8单元格。
默认情况下,所选范围最上面的单元格是活动单元格,同一行中其他所选列的单元格将与该单元格进行比较。 正如你在上面的截图中所看到的,活动单元格是白色的,而所选范围的所有其他单元格都被突出显示。 在这个例子中,活动单元格是A2,所以 比较栏 是A列。
拟 更改对比栏 ,使用Tab键从左到右浏览所选单元格,或使用Enter键从上到下移动。
提示:要选择 非相邻列 ,选择第一列,按住Ctrl键,然后选择其他列。 活动单元格将在最后一列(或相邻列的最后一块)。 要改变比较列,使用Tab或Enter键,如上所述。
- 关于 首页 选项卡,转到 编辑工作 组,并点击 查找& 选择 > 转到专题... 然后选择 行差 并点击 认可 按钮。
- 在每一行中,数值与对比单元格不同的单元格会被涂上颜色。 如果你想给突出显示的单元格涂上某种颜色,只需点击 填充颜色 色带上的图标,并选择你所选择的颜色。
如何在Excel中比较两个单元格
事实上,比较2个单元格是Excel中逐行比较两列的一个特殊情况,只不过你不必将公式复制到列中的其他单元格。
例如,要比较A1和C1单元格,你可以使用以下公式。
对于比赛。
=IF(A1=C1, "匹配", "")
对于差异。
=IF(A1C1, "差异", "")
要了解在Excel中比较单元格的其他一些方法,请看。
- 如何在Excel中比较两个字符串
- 检查两个单元格是否匹配或多个单元格是否相等
在Excel中比较两列/列表的无公式方法
现在你知道了Excel为比较和匹配列提供的服务,让我向你展示我们自己为这项任务提供的解决方案。 这个工具名为 "比较两个表",它包含在我们的终极套件中。
该插件可以通过任何数量的列来比较两个表格或列表,并同时识别匹配/差异(就像我们用公式做的那样)和突出显示它们(就像我们用条件格式化做的那样)。
为了本文的目的,我们将比较以下2个列表,以找到这两个列表中存在的共同值。
要比较两份名单,以下是你需要遵循的步骤。
- 开始时,点击 比较表 上的按钮。 阿博比特数据 标签。
- 选择 第一栏/列表 并点击 下一页 就插件而言,这是你的表1。
- 选择第二个 栏目/列表 并点击 下一页 就插件而言,它是你的表2,它可以驻留在同一或不同的工作表中,甚至是另一个工作簿中。
- 选择要寻找的数据种类。
- 重复的 价值 (匹配)--存在于两个列表中的项目。
- 独特的 价值 (差异)--列表1中存在的项目,但在列表2中没有。
由于我们的目的是寻找匹配,我们选择第一个选项并点击 下一页 .
- 这是关键的一步,你选择 用于比较的栏目 在我们的案例中,选择是显而易见的,因为我们只比较两列。 2000年获奖者 反对 2021年获奖者 在较大的表格中,你可以选择几个列对来进行比较。
- 在最后一步,你选择如何处理找到的项目,并点击 完成 .
这里有几个不同的选项。 对于我们的目的,这两个是最有用的。
- 用颜色突出显示 - 在选定的颜色中,阴影匹配或差异(像Excel条件格式化那样)。
- 在状态栏中确定 - 插入了 状况 列的 "重复 "或 "唯一 "标签(像IF公式那样)。
在这个例子中,我决定用以下颜色突出显示重复的部分。
过了一会儿,得到了以下结果。
随着 状况 列,结果将如下。
提示:如果你要比较的列表在不同的工作表或工作簿中,并排查看Excel表可能会有帮助。
这就是你在Excel中比较列的匹配(重复)和差异(唯一值)的方法。 如果你有兴趣尝试这个工具,欢迎你使用下面的链接下载评估版。
我感谢您的阅读,并鼓励您查看我们的其他有用教程 :)
可用的下载
比较Excel列表 - 例子 (.xlsx文件)
终极套房 - 试用版 (.exe文件)