如何使用VLOOKUP将值返回到表数组的左侧?

时间:2014-05-04 23:04:29

标签: excel vlookup

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

   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" for" value = 1"并返回"查尔斯"

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

2 个答案:

答案 0 :(得分:4)

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

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

INDEX / MATCH组合更灵活,您只需选择所需的两列即可。它也更容易阅读(您不必计算列数以查看它的作用)如果您在使用的列之间插入或删除列,它不会中断,VLOOKUP。如果使用跟踪公式功能,VLOOKUP也会错误地暗示其间的所有列都是结果公式的先例。 (你能告诉我,我不喜欢VLOOKUP吗?我总是使用INDEX / MATCH,我的生活也更容易。)

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

答案 1 :(得分:0)

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

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

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