-1

我正在尝试计算多个标准并让代码以某种方式与 SUMPRODUCT 一起工作。

Range("i2") = [SUMPRODUCT(($CZ$2:$CZ$61410="condition 1")*($DD$2:$DD$61410="condition 2")*($CU$2:$CU$61410=$A$2 <-/date/)*($CY$2:$CY$61410="condition 3"))]

大约有 40 个不同条件的列。所以我必须为每个条件编码。但这对我来说真的不起作用,因为我整个月都必须做同样的事情。

解释

保存日期的单元格A2A32比如说从 8 月 1 日到 8 月 31 日。原始数据表(在同一张纸上)在CU列上有日期(可能是 60000+ 行)。列CZ, DD,CY等具有必须满足才能计算在内的条件。

问题

我想要做的是,如果列中CU的日期 = 中的日期,A2那么它将计入第 2 行,如果列中CU的日期 = 中的日期,A3那么它将计入第 3 行。

这样我就可以为整个月编写一个代码,而不是每天单独编写。

4

1 回答 1

2

我首先提供这种类型的公式(如果首选 WorksheetFunction)的解决方案:

=COUNTIFS(CZ:CZ,"=1",DD:DD,"=2",CY:CY,"=3", ... CU:CU,"="&A2)  

以及根据所选日期显示结果(黄色单元格)的图像:

SO18505472 示例

这会计算在 A2 中选择的日期与第 1 行中显示的硬编码标准相匹配的实例数,以进行说明。

没有标准的硬编码,但可能与 OP 有更好的“匹配”,并且有更多示例:

SO18505472 第二个例子

除了突出显示外,C6还通过以下宏输入了 的内容:

Sub Macro1()
    Range("C6").Select
    ActiveCell.FormulaR1C1 = "=COUNTIFS(C[101],R1C[101],C[105],R1C[105],C[100],R1C[100],C[96],""=""&RC[-2])"
End Sub
于 2013-08-30T20:37:20.607 回答