2012-10-02 129 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

你也可以在列中使用数据透视表的关键字行和域名。看起来这样做可以做到这一点,并成为一个更强大的解决方案。