arrays - ARRAY公式EXCEL中的多条件IF语句

标签 arrays excel if-statement

我正在尝试在具有多个条件的 Excel 中创建一个数组公式,但是它不起作用(结果为 0)。如果我删除 AND 并一次评估一个条件,则公式有效,但我需要 excel 来评估所有三个条件并仅在满足所有三个条件时对值求和。任何提示表示赞赏。谢谢!

作品:

=SUM(IF($I$2:$I$9999<>"",$U$2:$U$9999))

=SUM(IF(YEAR($I$2:$I$9999)=YEAR(AD2),$U$2:$U$9999))

=SUM($M$2:$M$9999="",$U$2:$U$9999))

不工作:
=SUM(IF(AND($I$2:$I$9999<>"",YEAR($I$2:$I$9999)=YEAR(AD2),$M$2:$M$9999=""),$U$2:$U$9999))

Ctrl+Shift+Enter 用于输入公式。

最佳答案

您不能使用 AND在这类公式中使用函数,因为它返回单个结果,而不是数组 - 尝试使用 * 模拟 AND , IE。
=SUM(IF(($I$2:$I$9999<>"")*(YEAR($I$2:$I$9999)=YEAR(AD2))*($M$2:$M$9999=""),$U$2:$U$9999))
用 CTRL+SHIFT+ENTER 确认

....或带有 SUMPRODUCT 的“非数组”版本
=SUMPRODUCT(($I$2:$I$9999<>"")*(YEAR($I$2:$I$9999)=YEAR(AD2))*($M$2:$M$9999=""),$U$2:$U$9999)
.....或者可能SUMIFS=SUMIFS($U:$U,$I:$I,">="&DATE(YEAR(AD2),1,1),$I:$I,"<"&DATE(YEAR(AD2)+1,1,1),$M:$M,"")
编辑:如果您还检查该列的 YEAR,您可能不需要检查该列 I 是非空白的 - 它无论如何都不能匹配年份,除非 AD2 可能是空白的?

关于arrays - ARRAY公式EXCEL中的多条件IF语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30483439/

相关文章:

javascript - 在 Javascript 中从另一个数组中创建一个对象数组,对重复项进行分组

VBA 电源运算符 (^) 在 64 位 VBA 中未按预期工作

excel - 如何检查是否关闭excel(工作簿)vba

excel - 将线程 ID 传递给 SetWindowsHookEx

c - C 中更快的不等式

c++ - 在 C++ 的 if 语句中比较两个 boolean 值的建议

c++ - 如何创建不可移动/复制构造的对象数组

java - 在 java 中,我想使用 for 循环从整数数组中提取奇数位置的每个数字。我犯了什么错误?

java - 合并排序代码抛出 NullPointerException

bash - 使用 awk 将整数求和到 bash 中的列