2016-05-03 58 views
-1

我遇到的問題很難標題,也很難搜索。匹配來自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 

謝謝。

回答

1

兩個INDEX /匹配功能將做到這一點:

=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

相關問題