【问题标题】:Count unique values excel formula with Blanks - Countif shows a character limit error使用空白计算唯一值 excel 公式 - Countif 显示字符限制错误
【发布时间】:2023-03-11 18:25:01
【问题描述】:

我必须检查是否在 9 个单元格的垂直数组中,是否有两个或更多(最多所有 9 个单元格)cmets 相同,其余部分可能为空白。如果它们相同,则显示 TRUE,否则显示 FALSE。

我使用的公式如下所示,并且效果很好。我同时使用 Sumproduct 和 CountIF 来解决这个问题,但由于 CountIF 有 255 个字符的限制,任何超过 字符限制 的评论都会给我一个 #N/A 错误。

=SUMPRODUCT(($DU$3:$DU$11<>"")/COUNTIF($DU$3:$DU$11,$DU$3:$DU$11&""))=1

我正在寻找我列出的公式中的 CountIF 解决方法,它 不是 有 255 个字符的限制并且可以有更大的文本。感谢您的帮助。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    有一个公式可以解决问题:

    =SUM(IF(DU3:DU11<>"",IF(DU3:DU11=TRANSPOSE(DU3:DU11),1,0),0))=COUNTA(DU3:DU11)
    

    注意:这是一个数组公式,需要通过CtrlShiftEnter

    如果有任何重复值,它将返回FALSE。如果不使用重复项,它将返回 TRUE


    另一种选择是使用 UDF,可能如下:

    Function UniqueVals(rng As Range) As Boolean
    
    Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
    Dim arr As Variant, x As Long
    arr = rng.Value
    For x = LBound(arr) To UBound(arr)
        If arr(x, 1) <> "" Then
            If dict.Exists(arr(x, 1)) Then
                UniqueVals = False
                Exit For
            Else
                UniqueVals = True
                dict.Add arr(x, 1), 1
            End If
        End If
    Next x
    
    End Function
    

    =UniqueVals(DU3:DU11) 这样调用上面的代码,如果所有值都是唯一的,它将返回TRUE。如果有任何重复,它将返回FALSE


    也偶然发现了这个old 在 SO 上的帖子。

    【讨论】:

      猜你喜欢
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多