2016-05-03 29 views
-1

私が抱えている問題はタイトルを付けるのが難しく、検索も難しかった。2つのデータセットの2つの列の値を一致させて関連する値を見つけよう

ここにいくつかのデータ例があります。私がやろうとしている何

A B   C  D E   F 

B1 04/14/16 746  B1 04/25/16 2 
B1 04/15/16 180  B1 04/30/16 4 
B1 04/16/16 494  B1 05/01/16 5 
B1 04/17/16 726  B2 04/01/16 1 
B1 04/18/16 206  B2 04/03/16 1 
B1 04/19/16 22  B2 04/04/16 2 
B1 04/20/16 193  B2 04/05/16 2 
B1 04/21/16 739  B2 04/12/16 8 
B1 04/22/16 926  B2 04/13/16 1 
B1 04/23/16 748  B2 04/14/16 2 
B1 04/24/16 830  B2 04/15/16 1 
B1 04/25/16 272  B2 04/18/16 9 
B1 04/26/16 0  B2 04/19/16 1 
B1 04/27/16 0  B2 04/26/16 9 
B1 04/28/16 0  B2 04/27/16 3 
B1 04/29/16 0  B2 04/30/16 1 
B1 04/30/16 685  B2 05/02/16 5 
B1 05/01/16 770  B2 05/03/16 2 
B1 05/02/16 701  B3 04/03/16 3 
B1 05/03/16 181  B3 04/04/16 1 
B2 04/01/16 77  B3 04/06/16 2 
B2 04/02/16 182  B3 04/07/16 1 
B2 04/03/16 53  B3 04/09/16 1 
B2 04/04/16 32  B3 04/16/16 7 

は、AとD列のマッチングだけでなく、BとE列をマッチングするためのチェックです。列が一致する場合、列Fを取得して列Cで除算したいと考えています。

また、A列とB列の値が一致しない場合は、これらの値をゼロで戻します。だから、試合のため

B1 04/25/16 =2/272 

不一致の場合:

B1 04/14/16 0 

ありがとうございました。

二INDEX/MATCH関数は、それを行います

答えて

1

=IFERROR(INDEX($F$1:$F$24,MATCH(1,INDEX(($E$1:$E$24=J2)*($D$1:$D$24=I2),),0))/INDEX($C$1:$C$24,MATCH(1,INDEX(($B$1:$B$24=J2)*($A$1:$A$24=I2),),0)),0) 

これは、配列数式で、全列参照は計算として避けるべき指数であり、計算時間が増加します。よりダイナミックレンジは、この式を使用望まれる場合

=IFERROR(INDEX($F$1:INDEX(F:F,MATCH(1E+99,F:F)),MATCH(1,INDEX(($E$1:INDEX(E:E,MATCH(1E+99,F:F))=J2)*($D$1:INDEX(D:D,MATCH(1E+99,F:F))=I2),),0))/INDEX($C$1:INDEX(C:C,MATCH(1E+99,C:C)),MATCH(1,INDEX(($B$1:INDEX(B:B,MATCH(1E+99,C:C))=J2)*($A$1:INDEX(A:A,MATCH(1E+99,C:C))=I2),),0)),0) 

これは、データとの最後のセルを見つけて、レンジの範囲を設定するためにそれを使用します。したがって、データが拡大または縮小するにつれて、データを見るだけで、データセット全体をカバーするために必要以上に、あるいはそれ以上のものを反復しません。

enter image description here