我在Excel上相当不错,但这让我感到高兴。
我有一系列参赛作品 - $ D7:$ AH7
我想知道这些条目出现在这个范围内的次数 - $ K $ 7:$ V $ 10
我已经尝试过countif数组,但我认为它试图将行与行匹配,而不是匹配整个查找范围的范围内的每个条目。我也尝试将查找范围转换到同一行,但我认为它试图以相同的方式逐列匹配。
如果sumproduct工作,我不能使用这个太多计算本文档。
如果您有这样的建议,我很乐意使用VBA解决方案。
答案 0 :(得分:0)
非VBA解决方案:
=SUMPRODUCT(COUNTIF($K$7:$V$10,$D7:$AH7))
VBA解决方案:
找到rng1
中rng2
的值出现的次数:
可以忽略空白吗?
<强> 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