将错误值计算为任何其他值
Counting error values as any other value
我有如下所示的数据列表。我正在尝试计算每个唯一值出现的次数。
但是其中有些值是错误值,比如#N/A
。有没有既能统计正常值又能统计错误值的公式?
这个(作为数组公式输入)可以计算 a
和其他常规值:
=SUM(--IFERROR($A:$A=C2,FALSE))
但是如果我把它复制下来,显然它对错误值总数不起作用,因为它忽略了使用 IFERROR
的错误。
我知道我可以用这个数 #N/A
:
=SUM(--ISNA($A:$A))
但这是完全不同的公式;我不能只是将它复制到列中。
我正在寻找一个可以在没有 "changing the source code" 的情况下同时满足两者的公式。
COUNTIF
确实正确地计算了它们,但我不认为我可以使用它,因为这只是一个更大的数组公式的一部分。
试试这个小 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 都是文本值。
如果您无法使用 COUNTIF
,请尝试使用 D2
中的公式
{=SUM(IFERROR($A:$A=C2,FALSE)+IFERROR(ERROR.TYPE($A:$A)=ERROR.TYPE(C2),FALSE))}
=SUM(--IF(ISERROR(C2),IF(ISNA(C2),COUNTIF($A:$A,"#N/A"),COUNTIF($A:$A,"#VALUE!")),IFERROR($A:$A=C2,FALSE)))
看起来这完成了你想要的,并且在数组公式中对我有用。
我有如下所示的数据列表。我正在尝试计算每个唯一值出现的次数。
但是其中有些值是错误值,比如#N/A
。有没有既能统计正常值又能统计错误值的公式?
这个(作为数组公式输入)可以计算 a
和其他常规值:
=SUM(--IFERROR($A:$A=C2,FALSE))
但是如果我把它复制下来,显然它对错误值总数不起作用,因为它忽略了使用 IFERROR
的错误。
我知道我可以用这个数 #N/A
:
=SUM(--ISNA($A:$A))
但这是完全不同的公式;我不能只是将它复制到列中。
我正在寻找一个可以在没有 "changing the source code" 的情况下同时满足两者的公式。
COUNTIF
确实正确地计算了它们,但我不认为我可以使用它,因为这只是一个更大的数组公式的一部分。
试试这个小 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 都是文本值。
如果您无法使用 COUNTIF
,请尝试使用 D2
{=SUM(IFERROR($A:$A=C2,FALSE)+IFERROR(ERROR.TYPE($A:$A)=ERROR.TYPE(C2),FALSE))}
=SUM(--IF(ISERROR(C2),IF(ISNA(C2),COUNTIF($A:$A,"#N/A"),COUNTIF($A:$A,"#VALUE!")),IFERROR($A:$A=C2,FALSE)))
看起来这完成了你想要的,并且在数组公式中对我有用。