【问题标题】:How to return a value to the left of a table array with VLOOKUP?如何使用 VLOOKUP 将值返回到表数组的左侧?
【发布时间】:2014-05-04 23:04:29
【问题描述】:

我需要帮助在 E 列中搜索 value=1 并为同一行返回 A 列的值。 VLOOKUP 不起作用,因为正在搜索许多列,并且查找中有几个 1,而且我似乎无法使用 VLOOKUP 仅搜索 1 列。这是我的电子表格的外观...

   A         B           C            D            E
1 Name     Weight     WeightRank     Height     HeightRank     
2 Mike       170          3           6.3           2
3 Richard    200          1           6.0           3
4 Charles    185          2           7.0           1

所以我想在 E 列中搜索 value=1 并在 A 列中返回相应的值,在此示例中将在“HeightRank”中搜索“value=1”并返回“Charles”

我尝试使用=VLOOKUP(1,E:E,1),但返回错误。 我尝试使用=VLOOKUP(1,A1:E3,1),但返回错误。

【问题讨论】:

    标签: excel vlookup


    【解决方案1】:

    INDEX(A:A,MATCH(1,E:E,0))

    VLOOKUP 在这里不起作用——它总是在表的第一列中搜索,并在给定列数的右侧返回列的值。

    INDEX/MATCH 组合更加灵活,让您只需选择所需的两列。它也更容易阅读(您不必计算列来查看它的作用),并且如果您在正在使用的列之间插入或删除列,它不会中断,VLOOKUP 就是这样做的。如果您使用跟踪公式功能,VLOOKUP 还会错误地暗示中间的所有列都是结果公式的先例。 (你能说我不太喜欢 VLOOKUP 吗?我只是总是使用 INDEX/MATCH 并且我的生活更轻松。)

    OFFSET 解决方案有效,但它不稳定,因此如果许多单元格依赖于公式的结果,您真的会陷入工作表的困境。

    【讨论】:

      【解决方案2】:

      MATCH(x,E2:E4,0) 返回xE2:E4 范围内的相对位置。例如,MATCH(1,E2:E4,0) 返回 3,因为 1 是E2:E4 范围内第三个单元格的值。

      OFFSET(A2,r,c) 返回远离A2 的单元格r 行和c 列。

      因此,您可以说 =OFFSET(A2,MATCH(1,E2:E4,0)-1,0) 以返回与列 E 中包含 1 的单元格对应的列 A 的值。

      【讨论】:

      • 偏移量是不稳定的,每次编辑任何值时都会导致工作表重新计算。 INDEX() 是更好的选择。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      相关资源
      最近更新 更多