2016-07-29 105 views
2

我期待了解如何使用Excel VBA或公式來查找具有2個特定行和1個特定列的值。我附上了下表的示例截圖供參考。查找值基於查找2行和1列使用Excel VBA或公式

我想搜索2014年第1行,薩利第2行,和澳大利亞的A列國家返回的值是:2454.38

Example Table

+0

具有兩個MATCH()函數的INDEX()的數組形式將執行此操作。 –

+1

你能解釋一個例子公式嗎?我在網上發現了類似於這個想法的東西,但無法弄清楚如何將它應用到這個特定的例子。 對於那些有興趣,這裏是鏈接:http://www.exceltactics.com/vlookup-multiple-criteria-using-index-match/ –

回答

1

你會使用這個數組公式:

=INDEX($A$1:$M$6,MATCH(P3,$A$1:$A$6,0),MATCH(P1&P2,$A$1:$M$1&$A$2:$M$2,0)) 

作爲一個數組,它需要在退出編輯模式而不是Enter時使用Ctrl-Shift-Enter進行確認。如果做得正確,Excel將在公式周圍放置{}

enter image description here

+0

++大聲笑...我已經結束了相同的。 ..但你更快 –

0

這裏是VBA Excel版本。

Sub MatchingYearNameCountry() 
    Dim YearName, Country, Data 
    Dim Year1 As Integer, Name1 As String, Country1 As String 

    YearName = Range("B1:R2") 
    Country = Application.Transpose(Range("A3:A12")) 
    Data = Range("B3:R12") 

    Year1 = 2014 
    Name1 = "Ari5" 
    Country1 = "China4" 

    For i = 1 To 10 
     For j = 1 To 17 
      If YearName(1, j) = Year1 And YearName(2, j) = Name1 And Country(i) = Country1 Then 
       MsgBox "Data for " & Year1 & ", " & Name1 & ", and " _ 
         & Country1 & " is " & Data(i, j) 
       Exit Sub 
      End If 
     Next j 
    Next i 
     MsgBox "Data not found." 
    End Sub 

我假設B1 = 2011,B2 = Joe,A3 =加拿大。