2016-04-11 15 views
0

私のデータセットはマルチ基準最大Ifステートメント

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 
+0

あなたは '最寄り近いdate'を言うときあなたは両方向に意味ですか、遅くとも遅い? –

+0

ありがとうございます。 – sqlbg

+0

使用しているExcelのバージョンは何ですか? –

答えて

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キーを押しながら入力してください。 Excelが正常に実行された場合は、数式の周りに{}を入れます。

![![enter image description here

編集

揮発性の機能を回避するために@tigeravatarの提案を追加しました。

+2

'TODAY()'は揮発性の関数です。私は非常に別のセルに入れて、単に計算時間を減らすためにそのセルを参照することをお勧めします。良い答えだ:) – tigeravatar

+0

@tigeravatar素晴らしい提案。 –

+0

@sqlbgは、必要な条件を追加するための別の編集を行いました。 –

1

これは今はOKだと思いますが、OPによって提供されたより完全なデータセットと照合する必要があります。

それは数える: -

(1)同一の状態が、より高い確率で任意の行

(2)今日の日付に同じ状態と確率、将来的に(または存在する)と近いとの任意の行

(3)同じ状態と確率で、過去には今日の日付に近い行。

これらがすべてゼロの場合は、正しいものを用意してください。

=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 

日付は将来のすべてにある場合、それは多くのことを簡素化することができます: -

=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+DATEDIF($G$2,$B2,"d")) 
=0 

enter image description here

+0

配列以外の数式をうまく使います。 –

関連する問題