2015-10-06 130 views
1

開頭我試圖根據兩個條件進行索引匹配。我已經試過:索引匹配如果以

=index(B1:B4, match("*do", if(a1:a4 = "*Blue", b1:b4)),2)

 A   B  C 
_____________________________ 
1| Blue  | 5 | dotson 
2| Yellow  | 3 | dodo 
3| Yellow  | 8 | cat 
4| Blue-Green | 7 | dog 

我希望公式返回:

5 
7 

回答

1

這個公式可以做到。行2將其輸入到任何空的細胞:

=IFERROR(INDEX($A$1:$C$4,SMALL(IF(ISNUMBER(SEARCH("blue",$A$1:$A$4))*ISNUMBER(SEARCH("do",$C$1:$C$4)),ROW($C$1:$C$4)),ROW(1:1)),2),"") 

這是一個陣列式,並且必須以Ctrl鍵 + + 輸入來確認。

現在複製並選擇一個範圍一個單元格向下並按需要粘貼。

注意:將公式中的4s更改爲能夠滿足您在深度方面的需求的行號。

注意:這是一個撲殺公式。值5將出現在第2行,值7將出現在第3行等

+0

@sharris爲您工作? –

+0

這很接近@ExcelHero!我唯一的問題是,如果返回的列(上面列表B)有一個單元格在參數匹配時爲空,它將返回0而不是任何內容。 –

+1

@SHARRIS這就是Excel的工作原理......永遠。例如,說單元格A1是完全空白的。現在在另一個單元格中輸入公式'= A1',您會看到公式的結果不是空白,而是零。當INDEX函數返回正確的單元格時,會發生完全相同的事情。真的,重寫這種公認的奇怪行爲的唯一方法是在空白的明確測試中包裝一個公式,如下所示:'= IF(yourformula =「」,「」,yourformula)'你可以對我的公式,它顯然會長兩倍......但它會按照你想要的方式處理空白。 –

0

我認爲你可以做到這一點沒有得到通過參與INDEXMATCH

=IF(AND(LEFT(A1:A4, 4) = "Blue", LEFT(C1:C4, 2) = "do"), B1:B4)