【问题标题】:Evaluate Sum of Countifs with multiple OR Criteria within multiple columns使用多个列中的多个 OR 标准评估计数总和
【发布时间】:2020-04-22 14:16:50
【问题描述】:

我有以下情况:

我需要在应用过滤器之前计算行数。 假设我希望 A 列过滤某些确切的值(多个),B 列和 C 列也是如此。 我正在使用求和计数的评估

x = Evaluate("Sum(COUNTIFS(A:A,{"Value 1","Value 2"},B:B,{"X","Y"},C:C,{"XXX","YYY"}))")

我需要计算 A 列具有“值 1”“值 2”、B 列“X”“Y”的行数和 C列“XXX”“YYY” 但这种方法似乎不起作用。 任何帮助将不胜感激。

【问题讨论】:

  • 将字符串中的" 加倍。
  • 公式字符串中的双引号正在结束字符串...您需要双引号:"Sum(COUNTIFS(A:A,{""Value 1"",""Value 2""},B:B,{""X"",""Y""},C:C,{""XXX"",""YYY""}))" 这样您的文字双引号就会被转义。
  • 我使用了一个更复杂的公式,我试图在示例中进行简化。我使用字符串数组作为输入。 Evaluate("Sum(COUNTIFS(A:A," & Chr(34) & arZones(i) & Chr(34) & ",E:E,{""" & Join(arModels, """,""" ) & """},F:F,{""" & Join(arModSelect, """,""") & """},I:I," & Chr(34) & "=*-* " & Chr(34) & "))")
  • 也意识到这是写它的方式(A=Value1 AND B=X AND C=XXX) OR (A=Value2 AND B=Y AND C=YYY)不是任何组合。
  • 对于您的最新编辑,您不能执行三个OR 条件。限制是两个数组,一个是水平的,另一个是垂直的。您需要更改为更复杂的 SUMPRODUCT 公式,因为您需要限制对数据集的引用,并且您需要结合使用布尔条件的 +*

标签: excel vba excel-formula evaluate


【解决方案1】:

我终于找到了答案。 Scott 建议的评论起到了作用:使用 SUMPRODUCT 而不是 sum countifs

x = Evaluate("SUMPRODUCT(ISNUMBER(MATCH(" & rng1.Address & ",{""" & Join(arZonas, """,""") & """},0))*ISNUMBER(MATCH(" & rng3.Address & ",{""" & Join(arModSelect, """,""") & """},0))*--(ISNUMBER(SEARCH(""*-*""," & rng4.Address & "))))")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 2021-08-29
    • 2020-04-15
    • 1970-01-01
    • 2020-09-17
    相关资源
    最近更新 更多