我在A列中有一个值列表,并想要将这些值加起来,其中B列中的日期小于C列。
在此示例中,正确的值为2100
。
我之前必须参考一个日期(例如C3中包含的日期)完成此任务并使用公式:
=SUMIF(B2:B11,"<="&C3,A2:A11)
但在这种情况下,我需要B中的每个日期小于或等于C中的日期。我试过:
=SUMIF(B2:B11,"<="&C2:C11,A2:A11)
但是我的值为0
。有什么想法吗?
答案 0 :(得分:1)
选项A - 帮助列
对于任何需要逐行处理的场景,无论是执行某项操作还是其他操作(无论是总和,查找等),最简单的方法是在数据旁边使用“辅助”列,并使用公式确定是否应该包含它,通常返回“True”(如果要包括在内)。
使用您的数据布局,在D列中添加一个计算,计算出差异,从而是否应该包含该行,例如:
=C2-B2
或=C2>B2
拖了
然后,SUMIFS计算变为=SUMIFS(A2:A11,D2:D11,">0")
,或者对于具有更复杂标准的一般情况,=SUMIFS(A2:A11,D2:D11,TRUE)
如果您有大量复杂的标准,这种方法非常好,可能会因行而异或可能需要多次AND()
OR()
和其他逻辑评估(产品ID x并且是客户ID) y并且是值&gt; z,是提交的采购订单和收到的货物超过30天之间的天数等,以确定是否应该在某个其他功能中包含一行。
选项B - 数组公式
或者,您可以通过使用在公式中执行比较的数组公式来避免使用工作列。根据上面的数据,这将是:
输入 =SUM(IF(B2:B11<C2:C11,A2:A11,0))
Ctrl + Shift + 输入