【问题标题】:Index/Match multiple columns in Excel索引/匹配 Excel 中的多个列
【发布时间】:2012-10-02 00:48:47
【问题描述】:

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

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

第二张表的设置如下:

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

我正在尝试使用一个公式将表 2 中的关键字与表 1 中的关键字进行比较,然后返回对应于正确域的排名(在表 2 中为该列指定)。我无法得到任何我用来评估的公式。到目前为止,我使用了 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)))

【问题讨论】:

    标签: excel excel-formula excel-match


    【解决方案1】:

    要使值出现在 Sheet 2 表中,请使用以下公式:

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

    这将返回 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 中。

    这会查找相应的关键字,然后使用 match 来选择正确的列。我将列命名为ZY,但如果您需要包含Domain,也可以这样做。请注意,这会导致错误,因为您的第二个表中没有定义 E - 是这样吗?如果是这样,可以按如下方式调整它以解决不匹配的情况(假设 Excel 2007):

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

    【讨论】:

    • 我试过你的两个公式。我得到的一切都是#REF(“或者如果我使用你的第二个公式,则错误)。我逐步完成了公式,一切都在评估直到 VLOOKUP。那时它失败了。我对 Excel 的了解还不足以知道为什么。我确实修改了您的公式以使其适合我的工作表。我还将在您的示例中添加,列 G 和 H 我想用公式替换。我简单地把数字放在那里以显示我想要的。我不确定 VLOOKUP 是否在这里工作(同样,可能是错误的),因为它正在查看的列未按任何顺序排序,并且是带空格的单词
    • Gotcha - 所以你希望公式在列 G 和 H 中,基本上是说“对于关键字 A,找到域 Z 的相应排名”? #REF 基本上只是说您指的是无效的引用,当尝试将公式从一个地方移植到另一个地方时很容易发生这种情况:) 如果您像上面的示例一样设置它是否有效?我会修改答案以处理您的实际情况。
    • 对于您的问题,这正是我想要做的。如果我像你的例子那样设置它确实有效。
    • 很酷的交易 - 我将它添加到答案的顶部 - 让我知道这是否适合你!
    【解决方案2】:

    您还可以将数据透视表与行中的关键字和列中的域名一起使用。看起来这样可以完成工作并且是更强大的解决方案。

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 2020-10-30
      • 2019-02-20
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2016-05-10
      相关资源
      最近更新 更多