我有一个数据列表,如下所示。我试图计算每个唯一值的出现次数。
但其中一些值是错误值,例如#N/A
。是否有可以计算常规值和错误值的公式?
这个(作为数组公式输入)可以计算a
&和其他常规值:
=SUM(--IFERROR($A$2:$A$14=C2,FALSE))
但如果我将其复制下来,显然它不会对错误值总计起作用,因为它会使用IFERROR
忽略错误。
我知道我可以使用这个来计算#N/A
:
=SUM(--ISNA($A$2:$A$14))
但它完全是一个不同的公式;我无法将其拖放到列中。
我正在寻找能够兼顾两者的公式,而不是更改源代码"。
COUNTIF
会对它们进行正确计算,但我不认为我可以使用它,因为这只是一个更大的数组公式。
答案 0 :(得分:2)
如果您无法使用COUNTIF
,请尝试在D2
{=SUM(IFERROR($A$2:$A$14=C2,FALSE)+IFERROR(ERROR.TYPE($A$2:$A$14)=ERROR.TYPE(C2),FALSE))}
答案 1 :(得分:1)
=SUM(--IF(ISERROR(C2),IF(ISNA(C2),COUNTIF($A$2:$A$14,"#N/A"),COUNTIF($A$2:$A$14,"#VALUE!")),IFERROR($A$2:$A$14=C2,FALSE)))
看起来这样可以完成你想要的东西,并以数组公式为我工作。
答案 2 :(得分:0)
试试这个小 UDF():
Public Function Kount(rng As Range, what As Variant) As Long
Dim r As Range, st1 As String, st2 As String
st1 = CStr(what)
For Each r In rng
st2 = r.Text
If st1 = st2 Then
Kount = Kount + 1
End If
Next r
End Function
例如:
在此示例中, C4 和 C5 都是文本值。