索引/匹配Excel中的多个列

时间:2012-10-02 00:48:47

标签: excel excel-formula excel-match

我有2张。表1的设置类似于:

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 个答案:

答案 0 :(得分:2)

要使值显示在Sheet 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

答案 1 :(得分:0)

您还可以将PivotTable与行中的关键字和列中的域名一起使用。这似乎可以完成这项工作并成为一个更强大的解决方案。