【问题标题】:Count of matching values in the same row同一行中匹配值的计数
【发布时间】:2016-12-08 13:59:23
【问题描述】:
如何获取同一行中匹配值的计数?我有一个与下面类似的设置,由于第一行和第三行的匹配,我希望得到 2 的答案
A | B
-------
a | a
b | k
c | c
d | z
e | i
我希望用一个公式来做到这一点并尝试过
=COUNTIF(A1:A5,B1:B5)
但这并没有给我正确的答案
【问题讨论】:
标签:
excel
excel-formula
excel-2010
【解决方案1】:
使用这个公式:
=SUMPRODUCT(--(A1:A5=B1:B5))
【解决方案2】:
@TimBiegeleisen 和 @CallumDA 都给出了这个公式作为答案,但我会给出一些解释,以防它对你未来的工作有用并帮助你:
公式为=SUMPRODUCT(--(A1:A5=B1:B5))。让我们从内部开始逐个检查它:
-
A1:A5=B1:B5:
这为您提供了一个布尔值(即 TRUE/FALSE)数组,指示是否满足相等性。对于您问题中的数据,它看起来像这样:{TRUE;FALSE;TRUE;FALSE;FALSE}。我们有兴趣计算该数组中 TRUE 值的数量。
-
--:
这是您将在 Excel 中看到很多的约定。这是一种将布尔值分别从 TRUE 和 FALSE 强制转换为 1 和 0 的便捷方法。将它应用到上面的数组中,我们得到了这个数组:{1;0;1;0;0}。
-
SUMPRODUCT:
来自documentation:SUMPRODUCT“将给定数组中的相应分量相乘,并返回这些乘积的总和。”如果你给它一个数组作为参数,它只会简单地对数组的元素求和。这就是我们在这里所做的。所以结果是2。或者,我们可以使用 SUM 函数,但是对于数组,SUM 函数需要使用 CTRL + SHIFT + ENTER。 SUMPRODUCT 无需额外步骤即可处理数组。