【问题标题】:Using Array Formulas With If Function使用带有 If 函数的数组公式
【发布时间】:2018-07-06 21:41:03
【问题描述】:

我正在尝试使用IF 语句评估两个略有不同的COUNTIFS 函数之一,以确定要使用哪一个,用于大约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 列值与A46:47 中的值匹配,日期在12/31/2018 之前的列 ALAF(基于初始的 IF 语句)。

无论出于何种原因,我认为这与我对数组缺乏知识/经验有关。结果总是评估公式,就好像初始 IF 语句中的单元格是空白的一样,即使它不是。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    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))))
    

    【讨论】:

    • 谢谢,这很有帮助。我遇到的一个问题是,公式的以下部分应该评估Column V 中的值是否与单元格A46A47 中的任一文本值匹配:Current!$V:$V, $A$46:$A$47, 现在,标准部分此行的这一部分被读入公式,出现#VALUE 错误。我如何将这些单元格定义为要匹配的字符串?
    • 抱歉,我无法重现该问题。我刚刚模拟了第二个示例工作簿(我删除了用于证明公式的原始工作簿),它按预期工作。
    • 我刚刚做了一些额外的故障排除。我将通配符星号添加回"Open/Active",并将$A$46:$A$47 更改为$A$47,它按预期工作。我认为问题在于尝试匹配两个标准单元格中的任何一个。我是否应该进一步分解公式以便为每个单元格运行单独的 SUMPRODUCT A46A47?这可能会变得非常麻烦,因为其他一些输出将有两个以上这样的单元格来尝试匹配。
    • 不,那样会很麻烦,
    • 对,但我还能做些什么吗?放入 OR 语句来组合两个单元格不起作用,并且当我使用原始响应中的逻辑时,我的计数已关闭(零)。
    猜你喜欢
    • 1970-01-01
    • 2021-06-19
    • 2015-10-03
    • 2021-09-02
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    相关资源
    最近更新 更多