将错误值计为任何其他值

时间:2015-04-24 12:48:58

标签: excel excel-formula worksheet-function

我有一个数据列表,如下所示。我试图计算每个唯一值的出现次数。

但其中一些值是错误值,例如#N/A。是否有可以计算常规值和错误值的公式?

这个(作为数组公式输入)可以计算a&和其他常规值:

=SUM(--IFERROR($A$2:$A$14=C2,FALSE))

但如果我将其复制下来,显然它不会对错误值总计起作用,因为它会使用IFERROR忽略错误。

我知道我可以使用这个来计算#N/A

=SUM(--ISNA($A$2:$A$14))

但它完全是一个不同的公式;我无法将其拖放到列中。

我正在寻找能够兼顾两者的公式,而不是更改源代码"。

COUNTIF会对它们进行正确计算,但我不认为我可以使用它,因为这只是一个更大的数组公式。

enter image description here

3 个答案:

答案 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)))

看起来这样可以完成你想要的东西,并以数组公式为我工作。

enter image description here

答案 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

例如:

enter image description here

在此示例中, C4 C5 都是文本值。