需要帮助,Excel公式,计算与不同范围内容匹配的范围内的单元格数

时间:2014-04-28 11:31:53

标签: arrays excel excel-vba count formula vba

我在Excel上相当不错,但这让我感到高兴。

我有一系列参赛作品 - $ D7:$ AH7

我想知道这些条目出现在这个范围内的次数 - $ K $ 7:$ V $ 10

我已经尝试过countif数组,但我认为它试图将行与行匹配,而不是匹配整个查找范围的范围内的每个条目。我也尝试将查找范围转换到同一行,但我认为它试图以相同的方式逐列匹配。

如果sumproduct工作,我不能使用这个太多计算本文档。

如果您有这样的建议,我很乐意使用VBA解决方案。

1 个答案:

答案 0 :(得分:0)

非VBA解决方案:

=SUMPRODUCT(COUNTIF($K$7:$V$10,$D7:$AH7))

VBA解决方案:

找到rng1rng2的值出现的次数:

  

可以忽略空白吗?

<强> UPD:

Function countEntries(rng1 As Range, rng2 As Range) As Long
    Dim arr1, arr2, a1, a2

    arr1 = rng1.Value
    arr2 = rng2.Value

    For Each a1 In arr1
        If Trim(a1) <> "" Then
            For Each a2 In arr2
                If a2 = a1 Then
                    countEntries = countEntries + 1
                    Exit For
                End If
            Next
        End If
    Next
End Function

这样称呼:=countEntries($D7:$AH7,$K$7:$V$10)


P.S。我使用循环来确定数组是否包含值而不是Application.Match/Application.CountIf,因为它的速度提高了10倍。有关详细信息,请参阅此链接:Matching values in string array

相关问题