相应列值的最小值 - 限于日期范围

时间:2015-06-19 20:06:46

标签: excel excel-formula

我有一个包含四列的数据集: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

我想查找实际总数,除非实际超出预定时我想使用预定数字。

在一个已经回答的问题(Sum minimum of corresponding column values)中,我找到了一个数组公式,用于计算Qty列(用于显示小于符号的引号)的每一行的较小值:

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

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

任何想法如何实现这一目标?我在Excel 2013工作。

2 个答案:

答案 0 :(得分:1)

这是偶然方法的延伸: Excel的SUM函数(以及AVERAGE,STDEV等)具有&#34;跳过&#34;的有用行为。超过文本值。例如AVERAGE(3,4,&#34; dog&#34;,5)返回4.您可以在一个总和中利用嵌套IF的这种行为。例如,

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

将总结 (a)预定和实际的较小者 (b)当月为4时

这是通过嵌套的IF实现的。外部IF是 IF(MONTH(B1:B4)=4,...,"NO") [如果是月份&lt;&gt; 4,IF返回文本(&#34; NO&#34;),其中SUM跳过]

内部IF与偶然所展示的相同。 您可以根据需要为数据嵌套任意数量的测试/过滤器

答案 1 :(得分:0)

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

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

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

然后我们将1或0乘以符合额外条件的每个值。

因此,举一个示例,我们只想检查4月内结束日期的值的数量。我们可以这样做:

MONTH(B1:B4)=4

只需将SUM函数中的条件相乘,即可为该条件创建一个布尔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`)...)

您可以使用在您的条件中返回true / false值的任何公式或运算符 例如:= > < >= <= <> 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))