【问题标题】: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))。让我们从内部开始逐个检查它:

      1. A1:A5=B1:B5: 这为您提供了一个布尔值(即 TRUE/FALSE)数组,指示是否满足相等性。对于您问题中的数据,它看起来像这样:{TRUE;FALSE;TRUE;FALSE;FALSE}。我们有兴趣计算该数组中 TRUE 值的数量。
      2. --: 这是您将在 Excel 中看到很多的约定。这是一种将布尔值分别从 TRUEFALSE 强制转换为 10 的便捷方法。将它应用到上面的数组中,我们得到了这个数组:{1;0;1;0;0}
      3. SUMPRODUCT: 来自documentationSUMPRODUCT“将给定数组中的相应分量相乘,并返回这些乘积的总和。”如果你给它一个数组作为参数,它只会简单地对数组的元素求和。这就是我们在这里所做的。所以结果是2。或者,我们可以使用 SUM 函数,但是对于数组,SUM 函数需要使用 CTRL + SHIFT + ENTER。 SUMPRODUCT 无需额外步骤即可处理数组。

      【讨论】:

        猜你喜欢
        • 2021-01-08
        • 2017-06-24
        • 2014-03-27
        • 1970-01-01
        • 2019-09-18
        • 1970-01-01
        • 2013-08-24
        相关资源
        最近更新 更多