【发布时间】: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