Multi Criterion Max If Statement

时间:2016-04-11 16:17:18

标签: excel if-statement max

我的数据集看起来像这样......

State   Close Date  Probability      Highest Prob/State
WA       12/31/2016   50%            FALSE
WA       12/19/2016   80%            FALSE
WA       10/15/2016   80%            TRUE

我的目标是建立一个公式来填充最右边的列。该公式应评估每个州内的关闭日期和概率。首先,它应该选择最高概率,然后如果存在概率上的关系,则应该选择最近的关闭日期(如示例中所示)。对于该记录,它应该读为" TRUE"。

我认为这包括一个MAX IF声明但是还没有能够使它工作。

这是我正在使用的更强大的数据集。实际上可能更容易首先找到每个区域内的最高概率,然后选择最小(最旧)日期,如果存在概率上的平局。这也符合我的目的。

Region                    Forecast Close Date   Probability (%)
Okeechobee FL             6/27/2016                 90
Okeechobee West FL        7/1/2016                  40
Albany GA                 3/11/2016                 100
Emerald Coast FL          6/30/2016                 60
Emerald Coast FL          10/1/2016                 40
Cullman_Hartselle TN      4/30/2016                 10
North MS                  10/1/2016                 25
Roanoke VA                8/31/2016                 25
Roanoke VA                8/1/2016                  40
Gardena CA                6/1/2016                  80
Gardena CA                6/1/2016                  80
Lomita-Harbor City        6/30/2016                 60
Lomita-Harbor City        6/30/2016                 0
Lomita-Harbor City        6/30/2016                 40
Eastern NC                6/30/2016                 60
Northwest NC              9/16/2016                 10
Fort Collins_Greeley CO   3/1/2016                  100
Northwest OK              6/30/2016                 100
Southwest MO              7/29/2016                 90
Northern NH-VT            3/1/2016                  20
South DE                  12/1/2016                 0
South DE                  12/1/2016                 20
Kingston NY               12/30/2016                5
Longview WA               11/30/2016                5
North DE                  12/1/2016                 20
North DE                  12/1/2016                 0
Salt Lake City UT         8/31/2016                 20
Idaho Panhandle           8/26/2016                 0
Bridgeton_Salem NJ        7/1/2016                  25
Bridgeton_Salem NJ        7/1/2016                  65
Layton_Ogden UT           3/25/2016                 5
Central OR                6/30/2016                 10

2 个答案:

答案 0 :(得分:2)

以下数组公式应该有效:

=(ABS(B2-$F$2)=MIN(IF(($A$2:$A$33=A2)*(C2=MAX(IF($A$2:$A$33=A2,$C$2:$C$33))),ABS($B$2:$B$33-$F$2))))*(C2=MAX(IF($A$2:$A$33=A2,$C$2:$C$33)))>0

作为数组公式,在退出编辑模式时使用Ctrl-Shift-Enter。如果操作正确,Excel会将{}放在公式周围。

![![enter image description here

<强> 修改

添加@tigeravatar建议以避免易失性功能。

答案 1 :(得分:1)

我认为现在可以,但需要根据OP提供的更完整的数据集进行检查。

重要的是: -

(1)具有相同状态但概率较高的任何行

(2)将来(或现在)并且接近今天的日期具有相同状态和概率的任何行

(3)任何具有相同状态和概率的行,在过去和接近今天的日期。

如果所有这些都为零,那么你应该是正确的。

getFill()

如果日期都是将来,可以简化很多: -

=COUNTIFS($A$2:$A$100,$A2,$C$2:$C$100,">"&$C2)
+COUNTIFS($A$2:$A$100,$A2,$C$2:$C$100,$C2,$B$2:$B$100,"<"&$G$2+IF ($B2>=$G$2,DATEDIF($G$2,$B2,"d"),DATEDIF($B2,$G$2,"d")),$B$2:$B$100,">="&$G$2)
+COUNTIFS($A$2:$A$100,$A2,$C$2:$C$100,$C2,$B$2:$B$100,">"&$G$2-IF($B2>=$G$2,DATEDIF($G$2,$B2,"d"),DATEDIF($B2,$G$2,"d")),$B$2:$B$100,"<"&$G$2)
=0

enter image description here