Excel,使用函数返回的值来选择相应的单元格

时间:2015-08-18 16:41:39

标签: excel

我一直试图寻找答案,所以如果它已经得到回答,那么我一定不能使用正确的术语。

基本上我有三列,大约700行。我需要做的是:

+---------+---------+-----+
|    A    |    B    |  C  |
+---------+---------+-----+
| chicken | beef    | 112 |
| pork    | chicken | 541 |
| beef    | pork    | 312 |
| salami  |         |     |
+---------+---------+-----+

我需要一个公式来搜索单元格A中的当前单元格以查找整个B列中的匹配项。找到匹配后,需要在C处返回匹配单元格行号中的值。

例如,我使用公式=MATCH(A1, B$1:B$4,0),它将返回匹配值的当前位置。因此,具有公式的单元格将返回数字2。现在我需要弄清楚我是如何在C2获得价值的?

所以在一些伪代码中:

If A1 matches B2 get value at C2

If A2 matches A2 get value at C3

我希望有这样的功能:

=IF(MATCH(A1,B$1:B$4,0),C*numberReturnedHere*,"No Matches Found")

希望我提供了足够的信息并明确了我想做的事情。感谢

编辑:

期望的结果

+---------+---------+-----+------------------+
|    A    |    B    |  C  |        D         |
+---------+---------+-----+------------------+
| chicken | beef    | 112 | 541              |
| pork    | chicken | 541 | 312              |
| beef    | pork    | 312 | 112              |
| salami  |         |     | No Matches Found |
+---------+---------+-----+------------------+

2 个答案:

答案 0 :(得分:1)

D1 中输入:

=IFERROR(VLOOKUP(A1,$B$1:$C$3,2,FALSE),"NO MATCH FOUND")

并复制下来。

enter image description here

答案 1 :(得分:1)

这是INDEX功能。索引通过获取单个列,单个范围或2D数据表来工作,并返回您指定的行号和列号。因为您只想从列C返回数据,所以我们可以忽略分配列。使用MATCH函数(它是INDEX的理想合作伙伴),公式如下所示:

=INDEX(C:C,MATCH(B:B,A1,0))

或者,您可以使用单个VLOOKUP函数执行此操作,该函数查看数据表的最左侧列,查找匹配值,并返回该行中指定列数的值。看起来像是:

=VLOOKUP(A1,B:C,2,0)

请注意,虽然这有点简单,但定期使用INDEX + MATCH会很有用,因为它更通用。

正如@Gary指出的那样,如果找不到匹配项,您可以用IFERROR包装任一公式,以获得所需的错误消息。