MS Excel 2010使用多个条件和EDATE计算唯一值

时间:2018-05-22 07:36:20

标签: arrays date count excel-2010 unique

我试图按状态和日期范围计算Col A中列出的所有唯一值,例如截至2018年4月底的所有记录。

我可以通过以下公式获得状态(结果为2)的唯一值计数:

{=SUMPRODUCT(1*(FREQUENCY(IF($C$2:$C$14=F10,MATCH($A$2:$A$14,$A$2:$A$14,0)),ROW($A$2:$A$14)-ROW($A$2))>0))}

但是我无法让IF功能与EDATE一起使用。我试过以下但是结果是0。结果应为1。

{=SUMPRODUCT(1*(FREQUENCY(IF(D2:D14="<"&EDATE(G1,1),IF($C$2:$C$14=F10,MATCH($A$2:$A$14,$A$2:$A$14,0))),ROW($A$2:$A$14)-ROW($A$2))>0))}

我无法使用Pivot,因为我需要包含日期范围过滤器。有人可以看看我的代码并告诉我我做错了什么?我正在使用CSE和我的公式。三江源!

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。 EDATE没有工作,所以我在单元格中输入了月份日期:G1然后使用“&lt; =”在IF公式中引用它,例如:IF(D2:D14 <= G1)。

整数公式为:

`{=SUMPRODUCT(1*(FREQUENCY(IF(D2:D14<=G1,IF($C$2:$C$14=F10,MATCH($A$2:$A$14,$A$2:$A$14,0))),ROW($A$2:$A$14)-ROW($A$2))>0))}

我现在收到1的正确数,但我必须确保我已经进入G1的月末。状态在F10中引用,唯一值的计数在A列中。

我的完整数据集来自多个文档,每个文档超过5000行,并且每天都在增长,因此我的工作簿计算超过1000个数组公式的速度非常慢......但它确实有效!

如果有人知道更快(可能是非阵列)的公式,我将不胜感激!谢谢!