将错误值计数为任何其他值
我有一个如下所示的数据列表。 我正在计算每个唯一值有多less次出现。
但其中一些值是错误值,例如#N/A
有没有一个公式可以计算正常值和错误值?
这个(以数组公式的formsinput)可以计算a
和其他常规值:
=SUM(--IFERROR($A$2:$A$14=C2,FALSE))
但是,如果我把它复制下来,显然它不适用于错误值合计,因为它忽略了使用IFERROR
的错误。
我知道我可以用这个数字来计算#N/A
:
=SUM(--ISNA($A$2:$A$14))
但是完全不同, 我不能把它拖到列上。
我正在寻找一个公式,可以容纳两个,而不需要“改变源代码”。
COUNTIF
确实数了它们,但我不认为我可以使用它,因为这只是一个更大的数组公式。
如果您不能使用COUNTIF
,请尝试使用D2
公式
{=SUM(IFERROR($A$2:$A$14=C2,FALSE)+IFERROR(ERROR.TYPE($A$2:$A$14)=ERROR.TYPE(C2),FALSE))}
=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)))
它看起来像完成了你想要的,并在数组公式中工作。
试试这个小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都是文本值。