Note: The other languages of the website are Google-translated. Back to English
English English

计算Excel中两列之间的所有匹配/重复项

比较两列数据并计算两列中的所有匹配项或重复项可能是我们大多数人的常见任务。 例如,您有两列名称,有些名称同时出现在第一列和第二列中,现在,您想要计算两列之间所有匹配的名称(位于两列内任何位置的匹配项),如下图所示,本教程将介绍一些在 Excel 中实现这一目标的公式。


使用 SUMPRODUCT 和 COUNTIF 函数计算两列之间的所有匹配项

要计算两列之间的所有匹配项,SUMPRODUCT 和 COUNTIF 函数的组合可以帮助您,通用语法是:

=SUMPRODUCT(COUNTIF(range1,range2))
  • range1, range2:这两个范围包含要计算所有匹配项的数据。

现在,请将以下公式输入或复制到空白单元格中,然后按 输入 获得结果的关键:

=SUMPRODUCT(COUNTIF(A2:A12,C2:C12))


公式说明:

=SUMPRODUCT(COUNTIF(A2:A12,C2:C12))

  • 计数(A2:A12,C2:C12): 这个 COUNTIF 函数检查 C 列中的每个名称是否存在于 A 列中。如果名称存在,则显示数字 1,否则显示数字 0。 该函数将返回结果如下:{1;1;0;0;0;1;0;0;1;0;1}。
  • SUMPRODUCT(COUNTIF(A2:A12,C2:C12))=SUMPRODUCT({1;1;0;0;0;1;0;0;1;0;1}):SUMPRODUCT 函数对这个数组中的所有项求和并得到结果:5。

使用 COUNT 和 MATCH 函数计算两列之间的所有匹配项

通过 COUNT 和 MATCH 函数的组合,还可以获取两列之间的匹配数,通用语法为:

{=COUNT(MATCH(range1,range2,0))}
Array formula, should press Ctrl + Shift + Enter keys together.
  • range1, range2:这两个范围包含要计算所有匹配项的数据。

请输入或复制以下公式到空白单元格中,然后按 Ctrl + Shift + Enter 键在一起以获得正确的结果,请参见屏幕截图:

=COUNT(MATCH(A2:A12,C2:C12,0))


公式说明:

=计数(匹配(A2:A12,C2:C12,0))

  • 匹配(A2:A12,C2:C12,0): 这个 MATCH 函数将在 C 列中查找 A 列中的名称,并返回每个匹配值的位置。 如果未找到值,将显示错误值。 所以,你会得到这样的数组列表:{11;2;#N/A;#N/A;#N/A;6;1;#N/A;#N/A;#N/A; 9}。
  • COUNT(MATCH(A2:A12,C2:C12,0))= COUNT({11;2;#N/A;#N/A;#N/A;6;1;#N/A;#N/A;#N/A;9}): COUNT 函数会计算数组列表中的数字,得到结果:5。

使用 SUMPRODUCT、ISNUMBER 和 MATCH 函数计算两列之间的所有匹配项

在 Excel 中,您可以尝试在两列中查找匹配项并计数,然后使用 SUMPRODUCT、ISNUMBER 和 MATCH 函数,通用语法为:

=SUMPRODUCT(--(ISNUMBER(MATCH(range1,range2,0))))
  • range1, range2:这两个范围包含要计算所有匹配项的数据。

将以下公式输入或复制到空白单元格中以输出结果,然后按 输入 返回计算的键,见截图:

=SUMPRODUCT(--(ISNUMBER(MATCH(A2:A12,C2:C12,0))))


公式说明:

= SUMPRODUCT(-(ISNUMBER(MATCH(A2:A12,C2:C12,0))))

  • 匹配(A2:A12,C2:C12,0): 这个 MATCH 函数将在 C 列中查找 A 列中的名称,并返回每个匹配值的位置。 如果未找到该值,将显示错误值。 所以,你会得到这样的数组列表:{11;2;#N/A;#N/A;#N/A;6;1;#N/A;#N/A;#N/A; 9}。
  • ISNUMBER(MATCH(A2:A12,C2:C12,0))= ISNUMBER({11;2;#N/A;#N/A;#N/A;6;1;#N/A;#N/A;#N/A;9}):这里,ISNUMBER 函数将数组中的数字转换为 TRUE,将其他值转换为 FALSE。 所以,你会得到一个这样的数组:{TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE}。
  • --(ISNUMBER(匹配(A2:A12,C2:C12,0)))=--({TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE}): --这个双负号用于将TRUE值转换为1,将False值转换为0并返回结果如下:{1;1;0;0;0;1;1;0;0;0; 1}。
  • SUMPRODUCT(--(ISNUMBER(MATCH(A2:A12,C2:C12,0))))=SUMPRODUCT({1;1;0;0;0;1;1;0;0;0;1}):最后,SUMPRODUCT 函数将把这个数组中的所有项相加并得到结果:5。

使用的相对功能:

  • SUMPRODUCT:
  • SUMPRODUCT函数可用于将两个或多个列或数组相乘,然后获得乘积之和。
  • COUNTIF:
  • COUNTIF函数是Excel中的统计函数,用于计算符合条件的单元格数。
  • COUNT个:
  • COUNT 函数用于计算包含数字的单元格的数量,或计算参数列表中的数字。
  • MATCH:
  • Microsoft Excel MATCH函数在一系列单元格中搜索特定值,然后返回该值的相对位置。
  • 编号:
  • 当单元格包含数字时,ISNUMBER函数返回TRUE,否则返回FALSE。

更多文章:

  • 计算两列之间的匹配
  • 例如,我在 A 列和 C 列中有两个数据列表,现在,我想比较两列并计算 A 列中的值是否在 C 列的同一行中找到,如下面的屏幕截图所示。 在这种情况下,SUMPRODUCT 函数可能是您在 Excel 中解决此任务的最佳函数。
  • 计算Excel中包含特定文本的单元格数
  • 假设您有一个文本字符串列表,并且可能想要查找包含某些文本作为其内容一部分的单元格的数量。 在这种情况下,您可以在应用 COUNTIF 函数时使用表示条件中的任何文本或字符的通配符 (*)。 这篇文章,我将介绍如何在Excel中使用公式来处理这项工作。
  • 计算不等于Excel中许多值的单元格数量
  • 在 Excel 中,您可以使用 COUNTIF 函数轻松获取不等于特定值的单元格数量,但是您是否尝试过计算不等于多个值的单元格? 例如,我想获取 A 列中产品的总数,但排除 C4:C6 中的特定项目,如下图所示。 这篇文章,我将介绍一些在Excel中解决这个工作的公式。

最佳办公效率工具

Kutools for Excel-帮助您从人群中脱颖而出

您想快速,完美地完成日常工作吗? Kutools for Excel具有300项强大的高级功能(合并工作簿,按颜色求和,拆分单元格内容,转换日期等),并为您节省80%的时间。

  • 专为1500个工作方案而设计,可帮助您解决80%的Excel问题。
  • 每天减少成千上万的键盘和鼠标点击,减轻您疲倦的眼睛和手部的疲劳。
  • 在3分钟内成为一名Excel专家。 不再需要记住任何痛苦的公式和VBA代码。
  • 30天无限制免费试用。 60天退款保证。 免费升级和支持2年。
Excel功能区(已安装Kutools for Excel)

Office选项卡-在Microsoft Office(包括Excel)中启用选项卡式阅读和编辑

  • 一秒钟即可在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标单击,告别鼠标手。
  • 查看和编辑多个文档时,可将您的工作效率提高50%。
  • 像Chrome,Firefox和新的Internet Explorer一样,为Office(包括Excel)带来高效选项卡。
Excel的屏幕截图(已安装Office选项卡)
按评论排序
注释 (0)
还没有评分。 成为第一位评论!
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点