总计相应列值的最小值 – 限制为date范围
我有一个数据集有四列: Start Date
, End Date
, Scheduled Qty
和Actual 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))