总计相应列值的最小值 – 限制为date范围

我有一个数据集有四列: Start DateEnd DateScheduled QtyActual Quantity

 Start Date End Date Scheduled Qty Actual Qty 04/13/15 04/17/15 35 19 04/20/15 04/24/15 35 42 04/27/15 05/01/15 35 41 05/04/15 05/08/15 35 41 

我想find总的实际,除非实际超过预定我想使用预定的数量。

在一个已经回答的问题(相应列值的总和最小值)中,我发现了一个数组公式,用于为Qty列(用于显示小于号的引号)的每行的较小值合计的数组公式:

 =SUM(IF(C1:C4"<"D1:D4, C1:C4, D1:D4)) 

这给了我整个范围内的总数,但现在我想限制它在一个给定月份内的date范围,如结束date。 我在其他情况下使用了SUMIFS来查看我的结束date,并只汇总在给定月份内的数据,但是我不知道如何将该想法与数组公式中的数据结合起来。

任何想法如何做到这一点? 我在Excel 2013中工作。

这里是偶然的方法的扩展:Excel的SUM函数(以及AVERAGE,STDEV等)具有“跳过”文本值的有用行为。 例如AVERAGE(3,4,“dog”,5)返回4.你可以利用这个行为嵌套IF在一个和中。 例如,

 =SUM(IF(MONTH(B1:B4)=4,IF(C1:C4<D1:D4,C1:C4,D1:D4),"NO")) 

(a)当月份为4时,预定和实际(b)中的较小者

这是通过嵌套IF完成的。 如果月<> 4,IF返回文本 (“NO”),那么SUM跳过]

内在的IF与情境展示的一样。 您可以根据需要为数据嵌套尽可能多的testing/filter

为了将标准添加到数组函数中, 大多数情况下您只需将额外条件乘以已有的任何条件集。

之所以这样做是因为我们从我们想要总结的数字列表开始:

 IF(C1:C4<D1:D4, C1:C4, D1:D4) => { 19, 35, 35, 35 } 

然后,我们将1或0乘以每个满足额外条件的值。

因此,举例来说,我们只想检查在4个月有结束date的值的数量。 我们可以这样做:

 MONTH(B1:B4)=4 

只需在SUM函数中乘以该条件就可以为该条件创build一个布尔值and条件:

 =SUM(IF(C1:C4<D1:D4, C1:C4, D1:D4)*(MONTH(B1:B4)=4)) = SUM({ 19, 35, 35, 35 } * { 1, 1, 0, 0}) => SUM( {19, 35, 0, 0} ) = 54 

这是相同的,如果我们想添加n条件的:

 =SUM(IF(C1:C4<D1:D4, C1:C4, D1:D4)*(MONTH(B1:B4)=4)*(`Condition2`)*(`Condition3`)...) 

您可以使用任何在您的条件下返回真/假值的公式或运算符。
如: = > < >= <= <> IF(...,TRUE)

要添加OR逻辑作为一个标准,你需要使用加法,而不是乘法,然后将它们分组在一个(..)>0像这样:

 (((Or_Condition1)+(Or_condition2)+...+(Or_conditionN))>0) 

所以如果我们想总结4或5个月,我们可以写:

 =SUM(IF(C1:C4<D1:D4, C1:C4, D1:D4)*(((MONTH(B1:B4)=4)+(MONTH(B1:B4)=5))>0))