【问题标题】:VLOOKUP vs INDEXVLOOKUP 与索引
【发布时间】:2016-05-02 21:24:38
【问题描述】:

在 Excel 中,我正在尝试执行以下操作:

其中 sheet1 第 1 列 = sheet2 第 2 列,返回 sheet2 D 列中的值

我对如何执行此操作感到困惑,因为我发现的每个示例似乎都使用包含公式的工作表的列索引值。 (即 sheet1)

我想要:VLOOKUP(sheet1!A1,sheet2!A2:A11696,sheet2!4,FALSE)
我只能:VLOOKUP(sheet1!A1,sheet2!A2:A11696,4,FALSE)

阅读其他主题后,我看到人们似乎建议使用 INDEX。所以我尝试了

=INDEX(sheet2!A2:A11696, MATCH(sheet1!A1004,sheet2!D:D,FALSE))

这也不行。

【问题讨论】:

标签: excel excel-formula vlookup


【解决方案1】:

您的 VLOOKUP 仅引用一列,应该是 3。并从 B 列开始

VLOOKUP(sheet1!A1,sheet2!B2:D11696,3,FALSE)

第一个标准是要查找的内容,sheet1!A1

第二个是找到要查找的值和要返回的值的范围。范围的第一列必须是将在其中找到条件的列。根据sheet1 column 1 = sheet2 column 2,它将在 B 列中开始范围。

而且由于 D 列中所需的值必须包含在该范围内。

第三个是范围的哪一列是值。它不是列号本身,而是相对列号,在这种情况下,它是 Range sheet2!B2:D11696 中的第三列。

第四个强制完全匹配或相对匹配。 FALSE 强制精确匹配。

如果您要使用 INDEX/MATCH,那么:

=INDEX(sheet2!D2:D11696, MATCH(sheet1!A1,sheet2!B2:B11696,0))

MATCH 部分返回相对行号,其中 A1 在第二页的 B 列中找到。

然后在 INDEX 中使用这个数字,它会在 D 列的范围内找到相对的行号并返回该值。

MATCH() 中的 0 告诉 Match 寻找精确匹配。

【讨论】:

  • 澄清一下,第三个参数表示从搜索范围的哪一列中提取返回值。
  • 谢谢。我现在确切地知道我在哪里搞砸了,你的解释很清楚。再次感谢。
【解决方案2】:

INDEX/MATCH 函数对应如下所示。

=INDEX(sheet2!D:D, MATCH(sheet1!A1, sheet2!B:B, 0))

【讨论】:

    【解决方案3】:

    在更一般的意义上,INDEX/MATCH 方法的使用如下:

    =INDEX(A:A, MATCH(B1, C:C, 0))
    

    地点:

    A:A = 包含您需要查找的值的行或列。

    B1 = 您用来引用您要查找的值的索引(位置)的值。

    C:C = 包含与B1 匹配的值的行或列。此范围的大小应与A:A 的大小匹配,但这不是必需的。

    0 = 这只是意味着“完全匹配”。 -1 表示“如果B1 小于C:C 则匹配。1 表示“如果B1 大于C:C 则匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多