2016-01-26 70 views
0

我需要一些Excel表格中的查找公式幫助。我基本上試圖找出一行中相應的值,在同一行中的兩個條件相遇。讓我以他的方式來說明這一點。如果在列A的範圍內找到某個值,並且在同一行中,但在列C中,其他某個值相等,則返回同一行的列B中的值。查找或如果MS Excel中的條件公式

表如下:

 
Column A  Column B      Column C 
--------------------------------------------------------- 
Ahmadaba  Irrigation      550,041 
Ahmadaba  Livelihood      18,890 
Ahmadaba  Power       233,694 
Ahmadaba  Public Building     64,707 
Ahmadaba  Rural Development    104,381 
Ahmadaba  Transport      1,044,644 
Ahmadaba  Water Supply & Sanitation  1,156,322 

爲了詳細闡述;參照上表,​​如果列A等於艾哈邁達巴,C列等於18,890,那麼我應該從列B中獲得生計價值。

回答

1

到目前爲止,資源最少(因此效率最高)的設置將在您的表內使用一個額外的列,根據列A和C中的條目生成一系列唯一標識符。

因此,如果您的表格當前位於,例如A1:C8(在行中有標題1),那麼你可以用列D來達到這個目的,在D2中輸入這個公式:

=A2&"|"&C2

(分離器可能不是你的情況絕對必要的,但在總體上是好的做法。)

和向下複製到D8

然後,假設你選擇的搜索值,例如「Ahmadaba」和「18890」分別是E1F1,所需要的計算公式爲:

=INDEX(B2:B8,MATCH(E1&"|"&F1,D2:D8,0))

注意的這種設置的好處之一是,你還可以採用更靈活的變化上面不是引用只有8行,但一整列的價值,即:

=INDEX(B:B,MATCH(E1&"|"&F1,D:D,0))

幾乎沒有損害的計算性能。

如果出於某種原因,你無法將表內使用額外的列來執行這些串連,那麼另一種解決辦法是:

=LOOKUP(1,0/((A2:A8=E1)*(C2:C8=F1)),B2:B8)

然而,應該指出的是,與這個設置,Excel必須執行的計算量與被引用範圍的大小成正比。因此,不同於與INDEX/MATCH建設,這將是一個災難性的想法這裏使用:

=LOOKUP(1,0/((A:A=E1)*(C:C=F1)),B:B)

它迫使Excel來計算超過2萬個細胞。

Regards