【问题标题】:CountIf and SumProduct in Excel VBAExcel VBA中的CountIf和SumProduct
【发布时间】:2020-01-20 23:32:28
【问题描述】:

我正在尝试计算表列中唯一值的数量。我已将范围设置为表中的相关列。在定义要计数的唯一值的数量时,我收到以下错误:

Required_Rows = WorksheetFunction.SumProduct(1 / WorksheetFunction.CountIf(Range(Rng), Range(Rng)))

【问题讨论】:

    标签: excel vba unique


    【解决方案1】:

    您将无法以这种方式使用 Sumproduct 和 SumIf。尝试改用 Evaluate 方法...

    Dim Required_Rows As Variant 'declared as Variant in case Evaluate returns error
    
    Required_Rows = Evaluate("SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10))")
    
    If Not IsError(Required_Rows) Then
        'do something
    Else
        'do something else
    End If
    

    请注意,Evaluate 有 255 个字符的限制。

    编辑

    使用您定义的 Range 对象(即 Rng),尝试...

    Required_Rows = Evaluate("SUMPRODUCT(1/COUNTIF(" & Rng.Address(external:=True) & "," & Rng.Address(external:=True) & "))")
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢!这确实有帮助,除非我已经定义了执行此操作时出现错误的范围? Required_Rows = Evaluate("SUMPRODUCT(1/COUNTIF(" & Rng & "," & Rng & "))")
    猜你喜欢
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多