2012-10-02 128 views
1

我有兩張表。表1是成立類似於:在Excel中索引/匹配多個列

Keyword Domain Rank 
    A  Z  1 
    B  Z  2 
    C  Z  3 
    D  Y  10 
    E  Y  15 
    B  Y  20 

和板材2設置如下:

Keyword (Domain Z) (Domain Y) 
    A   1   - 
    B   2   20 
    C   3   - 
    D   -   10 

我想有一個公式,將與那些在工作表在表2中的關鍵字進行比較1,然後返回對應於正確域的排名(該表在該表中爲該列指定)。我無法獲得任何我用來評估的公式。到目前爲止,我已經使用了2個公式:

=INDEX(Raw!$H$11:$H$322, MATCH(A3,IF(Raw!$D$11:$D$322=All!$B$2,Raw!$B$11:$B$322),0)) 

上述公式適用於某一點。的問題是,它簡單拉發現該關鍵字的第一個實例的結構域,其並不總是第二個公式我試圖匹配片2的列中的域:

=INDEX(Raw!$H$11:$H$322, MATCH(B3,MATCH($C$2,Raw!$D$11:$D$322,0))) 

回答

2

爲了使該值出現在表2表中,使用以下公式:

=SUMPRODUCT(--($A$2:$A$7=E2),--($B$2:$B$7=$F$1),$C$2:$C$7) 

enter image description here

這將返回0用於非匹配 - 你可以格式化單元格來顯示0要如何,或可以使用更長的/醜陋的:

=IF(SUMPRODUCT(--($A$2:$A$7=E2),--($B$2:$B$7=$G$1),$C$2:$C$7)<>0,SUMPRODUCT(--($A$2:$A$7=E2),--($B$2:$B$7=$G$1),$C$2:$C$7),"-") 

要計算排名基於從第二表中的數據在第一層上:

=VLOOKUP(A2,$F$2:$H$5,MATCH(B2,$G$1:$H$1,0)+1,FALSE) 

對於樣本的目的,這只是把你的Sheet2中的數據在F1:H5。 enter image description here

這查找相應的關鍵字,然後使用匹配選擇右欄。我將列名爲ZY,但是如果您需要Domain也可以完成。請注意,這會導致錯誤,因爲在第二個表中沒有定義E - 是這種情況嗎?如果是這樣,就可以調整,以考慮如下(假設Excel 2007中)不匹配:

=IFERROR(VLOOKUP(A6,$F$2:$H$5,MATCH(B6,$G$1:$H$1,0)+1,FALSE),"Rank Not Found") 

enter image description here

+0

我試過了你的兩個公式。我得到的每一個東西都是#REF(「或者如果我使用第二個公式的話會出錯),我瀏覽一下公式,一切都在VLOOKUP之前進行評估,那時就失敗了,我對Excel的瞭解還不夠。爲什麼 我修改了一下你的公式,使它適合我的工作表,我還會補充一點,在你的例子中,列G和HI希望被公式替換。我不確定是否VLOOKUP在這裏工作(再次,可能是錯誤的),因爲它正在查看的列沒有按任何順序排序,並且是帶有空格的詞 – Kurt

+0

Gotcha - 所以您希望公式在列G和H,基本上說「對於關鍵字A,找到域Z的相應級別」?#REF基本上只是說你指的是一個無效的引用,當將一個公式從一個地方移植到另一個地方時,很容易發生這種情況:)如果你像上面的例子那樣設置它,它會起作用嗎?我會修改答案來處理你的實際情況。 – RocketDonkey

+0

對於你的問題,這正是我想要做的。如果我像你的例子那樣設置它,它確實有效。 – Kurt

0

你也可以在列中使用數據透視表的關鍵字行和域名。看起來這樣做可以做到這一點,併成爲一個更強大的解決方案。