我正在尝试在具有多个条件的 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/