将数组公式与If函数一起使用

时间:2018-07-06 21:41:03

标签: excel excel-formula

我正在尝试使用COUNTIFS语句评估两个略有不同的IF函数之一,以确定表的大约5000行中的每一个。

公式如下:

{=IF(ISBLANK(Current!$AL$2:$AL$5000),SUM(COUNTIFS(Current!$S$2:$S$5000,"*Open/Active*",Current!$AC$2:$AC$5000,Summary!K$3,Current!$V$2:$V$5000,$A$46:$A$47,Current!$AF$2:$AF$5000,"<="&DATE(2018,12,31))),SUM(COUNTIFS(Current!$S$2:$S$5000,"*Open/Active*",Current!$AC$2:$AC$5000,Summary!K$3,Current!$V$2:$V$5000,$A$46:$A$47,Current!$AL$2:$AL$5000,"<="&DATE(2018,12,31))))}

要了解我希望它如何工作,AL列已修改了到期日,但表中的所有行都没有。

如果不存在修订日期,则AL列字段应为空白,并且公式应计算与“原始到期日期”(AF列)条件以及其他条件匹配的行数在两个COUNTIFS之间共享。

如果特定行的“修订截止日期”列不是空白,则应运行第二个COUNTIFS公式。

输出应提供“打开/活动”项的总数,其中AC列值与文本单元格K3的列值相匹配,V列值与{{ 1}},以及A46:47AL列中的日期(基于初始AF语句)在IF之前。

无论出于何种原因,我都认为这与缺乏数组知识/经验有关。结果始终将公式计算为好像初始12/31/2018语句中的该单元格为空,即使不是。

1 个答案:

答案 0 :(得分:0)

COUNTIFS在其criteria_range参数中期望一个范围;您无法使用IF条件解析该范围。

不需要数组公式,也不需要减少完整的列引用。也可以在COUNTIFS中执行“无空白”检查。

'first COUNTIFS with no-blanks added
=SUMPRODUCT(COUNTIFS(Current!$S:$S, "Open/Active", 
                     Current!$AC:$AC, Summary!K$3, 
                     Current!$V:$V, $A$46:$A$47, 
                     Current!$AL:$AL, "", 
                     Current!$AF:$AF, "<"&DATE(2019,1,1)))

'second COUNTIFS formula
=SUMPRODUCT(COUNTIFS(Current!$S:$S, "Open/Active",
                     Current!$AC:$AC, Summary!K$3, 
                     Current!$V:$V, $A$46:$A$47, 
                     Current!$AL:$AL, "<>", 
                     Current!$AL:$AL, "<"&DATE(2019,1,1)))

SUMPRODUCT处理多个$ A $ 46:$ A $ 47标准。

同时输入“如果AL为空白,则使用AF”和“如果AL不是空白,请使用AL”,

=SUM(SUMPRODUCT(COUNTIFS(Current!$S:$S, "Open/Active", 
                         Current!$AC:$AC, Summary!K$3, 
                         Current!$V:$V, $A$46:$A$47, 
                         Current!$AL:$AL, "", 
                         Current!$AF:$AF, "<"&DATE(2019,1,1))),
     SUMPRODUCT(COUNTIFS(Current!$S:$S, "Open/Active",
                         Current!$AC:$AC, Summary!K$3, 
                         Current!$V:$V, $A$46:$A$47, 
                         Current!$AL:$AL, "<>", 
                         Current!$AL:$AL, "<"&DATE(2019,1,1))))