【问题标题】:Excel, use value returned from function to select the corresponding cellExcel,使用函数返回的值选择对应的单元格
【发布时间】:2015-08-19 01:05:34
【问题描述】:

我已尝试搜索此问题的答案,因此如果已经回答,那么我一定没有使用正确的术语。

基本上我有三列和大约 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 |
+---------+---------+-----+------------------+

【问题讨论】:

    标签: excel


    【解决方案1】:

    D1中输入:

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

    然后抄下来。

    【讨论】:

      【解决方案2】:

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

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-02-28
        • 2016-06-18
        • 1970-01-01
        • 1970-01-01
        • 2018-09-24
        • 1970-01-01
        • 2016-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多